比较两个不完美像素的图像

时间:2017-09-15 04:42:21

标签: python image pillow

我试图比较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

enter image description here [enter image description here

0 个答案:

没有答案