如何找到两个图像之间的差异并突出显示差异?

时间:2016-11-02 10:09:16

标签: python opencv opencv3.0

我有两张具有共同背景的图像,它们之间的唯一区别是移动圆圈。

图片1:

enter image description here

图片2:

enter image description here

预期差异图像是这样的:

enter image description here

如您所见,差异以图片编号突出显示。

我现在能做的就是:

import cv2

img1 = cv2.imread("1.jpg", cv2.IMREAD_GRAYSCALE)
img2 = cv2.imread("2.jpg", cv2.IMREAD_GRAYSCALE)
diff = cv2.absdiff(img1, img2)

有没有办法做到这一点?任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

您可以将像素逐个与像PIL这样的库进行比较。

当两个图像中的像素颜色相同时,只需绘制它。当您到达一个像素,其值是一个图像中的背景颜色而不是另一个图像时,绘制非背景颜色的像素。

这是一个非常基本的想法,但应该进行改进。例如,如果形状重叠怎么办?但是,你需要检测边缘,然后进入信号处理领域,这要复杂得多。但没有什么不可能!更难。