通过读取二进制数据比较Python中的图像

2024-07-02 11:59:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我想比较一下python中的图像图像a.jpg以及图像b.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问题和google搜索都建议使用像ImageChops或OpenCV这样的python模块。我这样做是不对的吗?如果是,为什么?在

谢谢!在


Tags: 数据字符串图像closeread图像文件二进制open
2条回答

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

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

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

来自In Python, is there a concise way of comparing whether the contents of two text files are the same?

相关问题 更多 >