首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用OpenCV/cv2比较和标记两幅图像(带图片)之间的差异

使用OpenCV/cv2比较和标记两幅图像(带图片)之间的差异
EN

Stack Overflow用户
提问于 2014-12-16 14:32:43
回答 1查看 18.6K关注 0票数 8

我想使用Python和cv2来比较两个图像,如下所示。

(Python 2.7 + Windows)

c:\Original.jpg

c:\Edited.jpg

非常简单,我可以在下面保存一张显示不同之处的图片:

代码语言:javascript
运行
复制
import cv2 

Original = cv2.imread("c:\\Original.jpg")
Edited = cv2.imread("c:\\Edited.jpg")

diff = cv2.subtract(Original, Edited)

cv2.imwrite("c:\\diff.jpg", diff)

结果如下所示:

c:\diff.jpg

此外,我希望根据比较的文件在图片中显示差异。换句话说,我希望有一个基于“Edited.jpg”的图片圆圈或标记差异。有可能吗?

(我想其中一种方法是,识别"diff.jpg“中的可见区域,然后在”Edited.jpg“中为该区域画一个圆圈?)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-16 16:34:52

感谢上面Micka的帮助。添加到下面,它就可以工作了。

代码语言:javascript
运行
复制
im = cv2.imread('c:\\diff.jpg')
im1 = cv2.imread('c:\\Edited.jpg')


imgray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(imgray,127,255,0)
contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)

cv2.drawContours(im1, contours, -1, (0,255,0), 1)
cv2.imwrite("c:\\see_this.jpg", im1)

c:\see_this.jpg

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27498833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档