什么是功能已大大增强的方式分两者之间的差异的图像下面? (例如,量化,第二像是25%,不同于第一个)
该版本似乎出现了很多讨论有关的图像比较,例如在这方讨论> 查看图像的相似性与开源 但是,我不相信这样做的直方图的比较将在这里工作,因为价值主要是黑色和白色。
你将如何办法的一个问题像这样吗?
什么是功能已大大增强的方式分两者之间的差异的图像下面? (例如,量化,第二像是25%,不同于第一个)
该版本似乎出现了很多讨论有关的图像比较,例如在这方讨论> 查看图像的相似性与开源 但是,我不相信这样做的直方图的比较将在这里工作,因为价值主要是黑色和白色。
你将如何办法的一个问题像这样吗?
我找到答案,为我工作那么我想和大家分享它的情况下,其他任何人具有一个类似的问题。 代码比较像素的两个图像,并找到差异。 同一像素将有一个值0。 知道了这一点,我们可以利用顽固找到非零素和使用数量来计算的一个差分。
你可以使用这个代码
import cv2
import numpy as np
img1 = cv2.imread("16x16_orig.png", 0)
img2 = cv2.imread("16x16_dif.png", 0)
#--- take the absolute difference of the images ---
res = cv2.absdiff(img1, img2)
print(res)
#--- convert the result to integer type ---
res = res.astype(np.uint8)
print(np.count_nonzero(res))
#--- find percentage difference based on number of pixels that are not zero ---
percentage = (np.count_nonzero(res) * 100)/ res.size
print(percentage)
使用两个图像下面将返回的得分为50%,这是我们所期望的。
之后我们得到的absdiff,所得到的阵看起来是这样的:
[[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207]
[207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207]
[207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207]
[207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207]
[207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207]
[207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207]
[207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207]
[207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207]]
重要的是要注意到的图像,你想来比较,将需要同样大小。
对于那些是好奇的图像的原始质疑。 其结果是2.56%的差异与1292非零素