Python PIL - 如何比较两个图像

时间:2016-11-01 19:14:23

标签: python image compare python-imaging-library

好的,我有2张图片:

image1

image2

我希望比较它们

from PIL import Image, ImageChops
im1 = Image.open('im1.png')
im2= Image.open('im2.png')

def compare(im1, im2):
    #blah blah blah

基本上,2个图像实际上是相同的,但是1个更大而另一个更小,因此一个像素更多,另一个像素更少。我想要一个比较2个图像的功能,例如,表示数字的差异。如果数量很小,我知道差异几乎不存在,但如果数量很大,则它们是不同的。

或任何其他比较图像的功能。如果你想使用我使用的这两个图像,那么结果将是相同的。感谢

1 个答案:

答案 0 :(得分:1)

您可以在重新整形或裁剪后减去图像的值:

img1 = img1.reshape(100, 200)
img2 = img2.reshape(100, 200)
# Calculate the absolute difference on each channel separately
dif = np.fabs(np.subtract(img2[:], img1[:]))

如果您想直观地看到差异,可以创建两幅图像之间差异的热图。

#Show image
imgplot = plt.imshow(dif)
# Choose a color palette
imgplot.set_cmap('jet')
plt.axis('off')
pylab.show()