1
我有一个地图,其上有许多跨地图上传播的相似符号(树)的。 I 我使用opencv来查找所有符号的X,Y坐标。去除或防止复制模板匹配OpenCV中与Python
它的工作很好,但我得到的重复结果数量巨大。如果我增加过滤器阈值,重复数量会减少,因为许多符号都会丢失。我已经尝试编写一些代码来根据邻近度筛选出结果,但我没有太多运气。有没有人对我可以在这里尝试什么有所了解?
img_rgb = cv2.imread('images/map.jpg')
img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
template = cv2.imread('images/tree.jpg',0)
w, h = template.shape[::-1]
res = cv2.matchTemplate(img_gray,template,cv2.TM_CCOEFF_NORMED)
threshold = 0.35
matches = np.where(res >= threshold)
tree_count = 0
for pt in matches:
tree_count += 1
cv2.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (255,0,0), 1)
cv2.imwrite('found_map.jpg',img_rgb)
print "Done " + map