opencv 对比两张图片的不同,并把不同之处标出来 python
时间: 2023-11-22 11:03:08 浏览: 347
用openCV和Python 实现图片对比,并标识出不同点的方式
5星 · 资源好评率100%
在使用Python的OpenCV库进行图像处理时,可以对比两张图片的不同之处并标出来。首先,需要使用OpenCV加载两张图片并将它们转换为灰度图像。然后,可以使用cv2.absdiff()函数对比两张灰度图像的差异,并找到不同之处。
接下来,可以设置一个阈值来过滤掉一些微小的差异,然后利用cv2.findContours()函数来检测图像中的轮廓。找到轮廓后,可以使用cv2.drawContours()函数将差异标出来并在原图上进行标记。
最后,将标记好差异的图片展示出来,或者将结果保存成一个新的图片文件。
整个过程可以用以下Python代码实现:
```python
import cv2
# 读取两张图片并转换成灰度图像
img1 = cv2.imread('img1.jpg', 0)
img2 = cv2.imread('img2.jpg', 0)
# 对比两张灰度图像的差异
diff = cv2.absdiff(img1, img2)
# 设定阈值
_, threshold = cv2.threshold(diff, 30, 255, cv2.THRESH_BINARY)
# 查找图像中的轮廓
contours, _ = cv2.findContours(threshold, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 在原图上标出不同之处
cv2.drawContours(img1, contours, -1, (0, 255, 0), 2)
# 展示结果
cv2.imshow('Result', img1)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这样就可以利用OpenCV对比两张图片的不同并将不同之处标出来。
阅读全文