其实高效图像处理与计算机视觉技术指南的问题并不复杂,但是又很多的朋友都不太了解,因此呢,今天小编就来为大家分享高效图像处理与计算机视觉技术指南的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
如果输入图像尺寸为WxH,模板图像尺寸为wxh,则输出图像的尺寸为(W-w+1, H-h+1)。获得结果后,可以使用cv2.minMaxLoc() 函数查找最大值和最小值。设其为矩形的左上角,w、h为矩形的宽度和高度。该矩形是您的模板区域。
注意:
如果使用cv2.TM_SQDIFF作为比较方法,则最小值为最佳匹配。
OpenCV 中的模板匹配
举个例子,让我们在照片中搜索梅西的脸。所以我做了这个模板:
我们会尝试所有的比较方法
导入CV2
将numpy 导入为np
从matplotlib 导入pyplot 作为plt
img=cv2.imread("messi5.jpg",0)
img2=img.copy()
模板=cv2.imread("模板.jpg",0)
w, h=template.shape[:-1]
# 列表中所有6种比较方法
方法=["cv2.TM_CCOEFF", "cv2.TM_CCOEFF_NORMED", "cv2.TM_CCORR",
"cv2.TM_CCORR_NORMED","cv2.TM_SQDIFF","cv2.TM_SQDIFF_NORMED"]
对于methods:中的方法
img=img2.copy()
方法=评估(方法)
# 应用模板匹配
res=cv2.matchTemplate(img,模板,方法)
min_val、max_val、min_loc、max_loc=cv2.minMaxLoc(res)
# 如果方法是TM_SQDIFF 或TM_SQDIFF_NORMED,则取最小值
if [cv2.TM_SQDIFF, cv2.TM_SQDIFF_NORMED]: 中的方法
左上=最小位置
否则:
左上=最大位置
右下=(左上[0] + w, 左上[1] + h)
cv2.矩形(img,左上,右下,255,2)
plt.subplot(121),plt.imshow(res,cmap="灰色")
plt.title("匹配结果"), plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(img,cmap="灰色")
plt.title("检测点"), plt.xticks([]), plt.yticks([])
plt.suptitle(meth)
plt.show()
·cv2.TM_CCOEFF
·cv2.TM_CCOEFF_NORMED
·cv2.TM_CCORR
cv2.TM_CCORR_NORMED
CV2.TM_SQDIFF
cv2.TM_SQDIFF_NORMED
可以看到cv2.TM_CCORR的结果并不是我们想要的。
模板匹配多个目标
之前我们搜索了梅西的脸部,目标只在图像中出现过一次。假设您要搜索的内容在图像中多次出现,cv2.minMaxLoc() 不会为您提供所有位置。在这种情况下,我们将使用阈值,在这种情况下,我们使用超级马里奥的屏幕截图来寻找金币。
导入CV2
将numpy 导入为np
从matplotlib 导入pyplot 作为plt
img_rgb=cv2.imread("马里奥.png")
img_gray=cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
模板=cv2.imread("mario_coin.png",0)
w, h=template.shape[:-1]
res=cv2.matchTemplate(img_gray,模板,cv2.TM_CCOEFF_NORMED)
阈值=0.8
loc=np.where( res=阈值)
对于zip 中的pt(*loc[:-1]):
cv2.矩形(img_rgb, pt, (pt[0] + w, pt[1] + h), (0,0,255), 2)
cv2.imwrite("res.png",img_rgb)
关于高效图像处理与计算机视觉技术指南,的介绍到此结束,希望对大家有所帮助。
【高效图像处理与计算机视觉技术指南】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
我学编程的时候就遇到过OpenCV,那时候真难上手!
有19位网友表示赞同!
最近在研究图像识别,听说OpenCV很常用吧?
有19位网友表示赞同!
感觉OpenCV可以做很多酷炫的事啊,比如识别人脸和物体。
有8位网友表示赞同!
想学OpenCV,但是不知道从哪里开始下手好呢?
有15位网友表示赞同!
我有一个想法,可以用OpenCV做一个自动拍照的程式!
有12位网友表示赞同!
玩过一些用OpenCV做的互动游戏,太有趣了!
有19位网友表示赞同!
知道OpenCV有很多资源可以看吗?推荐一下吧。
有17位网友表示赞同!
听别人说,学习OpenCV的入门资料还是挺多见的啊。
有11位网友表示赞同!
OpenCV是不是很吃配置呢?我的电脑会hold住吗?
有16位网友表示赞同!
有没有人用OpenCV做过有趣的项目分享下经验?
有9位网友表示赞同!
感觉图像处理技术越来越普遍了,OpenCV应该要跟着进步吧。
有7位网友表示赞同!
OpenCV的社区也很活跃吧?有的时候找资料可以发个问题问问啊。
有12位网友表示赞同!
其实很多软件都用到了OpenCV的技术吧?
有18位网友表示赞同!
好像OpenCV也有中文文档吧?
有15位网友表示赞同!
学习技术真不容易,希望自己能理解OpenCV的原理!
有5位网友表示赞同!
最近想尝试用OpenCV做点什么,需要先看一些教程啊。
有18位网友表示赞同!
将来会不会有更强大的图像处理工具出来取代OpenCV呢?
有11位网友表示赞同!
OpenCV这么热门的技术,一定有很多就业机会吧?
有20位网友表示赞同!
学习OpenCV是不是会需要玩转Python呀?
有16位网友表示赞同!