我一直在使用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()中,这样会使数字相去甚远,因此无效。
注意:主图像中有多个匹配项。