我试图比较python中两张相似但不完美的照片。我正在使用Pillow库(我的代码如下)。代码检查以查看两张照片的相似程度并返回百分比。 的更新 我的代码没有返回某些与眼睛相似的图像(例如下面的例子)。有人能解释一下原因吗?
检查图像相似度
def imageSimilarity(self,i1,i2):
pairs = zip(i1.getdata(), i2.getdata())
if len(i1.getbands()) == 1:
# for gray-scale jpegs
dif = sum(abs(p1 - p2) for p1, p2 in pairs)
else:
dif = sum(abs(c1 - c2) for p1, p2 in pairs for c1, c2 in zip(p1, p2))
ncomponents = i1.size[0] * i1.size[1] * 3
return (dif / 255.0 * 100) / ncomponents
从左到右比较图像
def leftRightReflected(self,figure1,figure2):
image1 = Image.open(figure1.visualFilename)
image2 = Image.open(figure2.visualFilename)
left_right_mirror = image1.transpose(Image.FLIP_LEFT_RIGHT)
return self.sameImage(left_right_mirror,image2) or self.imageSimilarity(image2,left_right_mirror) < 3
自上而下比较图片
def topDownReflected(self,figure1,figure2):
image1 = Image.open(figure1.visualFilename)
image2 = Image.open(figure2.visualFilename)
top_bottom_mirror = image1.transpose(Image.FLIP_TOP_BOTTOM)
return self.sameImage(top_bottom_mirror,image2) or self.imageSimilarity(image2,top_bottom_mirror) < 3
[