模板匹配获取以像素为单位的图像中的模板位置-python

时间:2018-09-10 21:01:26

标签: python opencv

我一直在使用openCV进行模板匹配。我已经完成了本教程的工作,并在我一直匹配的对象周围显示了红色框。这是我的代码(来自openCV网页):

import cv2
import numpy

large_image  = cv2.imread('image1.png')
small_image = cv2.imread('image2.png')

null, w, h = small_image.shape[::-1]

res = cv2.matchTemplate(large_image, small_image, cv2.TM_CCOEFF_NORMED)
loc = numpy.where(res >= 0.7)

for pt in zip(*loc[::-1]):
    suh = cv2.rectangle(small_image, pt, (pt[0] + w, pt[1] + h), (0, 66, 255), 1)

cv2.imwrite('something.png', suh)

现在,我的目标是使用此技术来获取以像素为单位匹配的模板的位置(例如:[532,346])。 for循环中的pt变量用作坐标,但是坐标太多了。如何做到这一点,所以每个匹配的图片只有一个位置?

我确实尝试了一种方法,该方法基本上将它们四舍五入,然后将它们放入 set()中,这样会使数字相去甚远,因此无效。

注意:主图像中有多个匹配项。

0 个答案:

没有答案