ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

OpenCV Python - 模板匹配

OpenCV Python - 模板匹配 我们来看一下图像轮廓, 此外还需要了解图像金字塔。- 模板匹配更新于 2024/2/3 15:46:00使用模板匹配技术, 我们可以针对那些和样本图像或者是模板图片相符合的区域, 去执行检测工作, 这样的操作可能涉及到一个具体的区域情况, 也可能涉及到一个以上的多个不同区域的整体状况。中的这个Cv.()函数, 就是专门为了这个目的而设计出来的, 它的具体命令形式如下所示。cv.matchTemplate(image, templ, method)这里的image指的是你拿来用的那块输入图片, 而templ也就是模板, 它是指那个要被找到的图案最终应该出现在哪里的一个地方。关于这个参数, 你需要从下面列出来的那些数值值里面挑一个来用, −。此方法会利用模板图像在输入图像上进行一种滑动操作。这其实是一个和卷积类似的过程。它主要是去比较输入图像里面和模板一样的部分。它返回一个灰度图像, 其中的每个像素都显示了该像素与模板的匹配程度是多少。假设输入的图像大小是宽度为W高度为H, 模板的大小是宽度为w高度为h, 那么输出图像的大小就是大小为 W-w1 和 H-h1 的形状。因此这个形状代表的区域就是你的模板区域部分。示例在下面的这个示范里面,有张印有Virat Kohli那张脸的图就被拿来当做了模板, 为的是去跟另一幅画了他和M.S.Dhoni两人的照片进行匹配。那个以下的程序是使用80%的那一个阈值, 而且是在那个被匹配到的人脸的地方呢, 画出了一个矩形的这样的一个东西。import cv2import numpy as npimg cv2.imread(Dhoni-and-Virat.jpg,1)cv2.imshow(Original,img)gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)template cv2.imread(virat.jpg,0)cv2.imshow(Template,template)w,h template.shape[0], template.shape[1]matched cv2.matchTemplate(gray,template,cv2.TM_CCOEFF_NORMED)threshold 0.8loc np.where( matched threshold)for pt in zip(*loc[::-1]):cv2.rectangle(img, pt, (pt[0] w, pt[1] h), (0,255,255), 2)cv2.imshow(Matched with Template,img)输出结果的原图, 以及模板, 还有那个匹配图如下所示。原始图片这个模板在下面这里, 样子就像这个样子 −。在进行模板匹配操作的时候, 所使用的图片情况是这样的 −。图像轮廓 图像金字塔
返回列表