Python PIL - 如何比较两个图像

Python PIL - how to compare two images

好的,我有 2 张图片:

我想比较一下

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

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

基本上这两张图片几乎是一样的,只是一张大一张小,所以一张像素多,一张像素少。我想要一个比较 2 个图像的函数,例如,表示数字的差异。如果数字小,我知道差异几乎不存在,但如果数字大,它们是不同的。

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

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

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()