两幅图像之间的差异检测

数据挖掘 Python 深度学习 计算机视觉 opencv
2022-02-18 18:38:31

我正在尝试比较两个图像并检测它们之间的差异,无论是形状还是颜色。

-形状的变化:零件数量发生了变化(增加或减少)。-颜色的变化:一些部分是粉红色的,然后变成了白色,反之亦然。

我尝试了 3 种算法:

  1. 通过 Compare_ssim 进行比较。
  2. 通过 PIL (ImageChops.difference) 进行差异检测。
  3. 图像减法。

第一种算法:

(score, diff) = compare_ssim(img1, img2, full=True)
diff = (diff * 255).astype("uint8")

第二种算法:

from PIL import Image ,ImageChops
img1=Image.open("canny1.jpg")
img2=Image.open("canny2.jpg")
diff=ImageChops.difference(img1,img2)
if diff.getbbox():
     diff.show()

第三种算法:

 image3= cv2.subtract(image1,image2)

问题是这些算法非常敏感。如果图像具有不同的噪声和不同的捕获角度,他们认为这两个图像是完全不同的。有什么想法可以解决这个问题吗?

图像1 图2 结果

0个回答
没有发现任何回复~