0

我想与 python 中的图像进行比较,比如 imageA.jpg 和 imageB.jpg。我这样做:

f = open('./imageA.jpg','rb')
imgA = f.read()
f.close()
f = open('./imageB.jpg','rb')
imgB = f.read()
f.close()
imagesEqual = imgA == imgB

最后一行主要检查从两个图像文件中读取的二进制数据的字符串是否相等。现在,很多 stackoverflow 问题和谷歌搜索建议使用 Python 模块,如 ImageChops 或 OpenCV。我这样做的方式不正确吗?如果是,为什么?

谢谢!

4

2 回答 2

0

使用您的代码比较文件,而不是图像。如果要比较图像的真实内容(像素值),则应打开并加载两个图像(imgA=Image.open('./imageA.jpg')、imgA.load())并进行比较它们,因为有时两个相同图像的文件可能包含不同的标题、元数据……在这种情况下,图像相同但文件不同。

于 2013-10-12T17:55:16.697 回答
0

如果您只想知道它们是否不同,请尝试:

import filecmp
if filecmp.cmp(filename1, filename2, shallow=False):

Python 中,有没有比较简洁的方法来比较两个文本文件的内容是否相同?

于 2013-10-12T03:50:36.010 回答