如何解决计算匹配opencv2的模板数量
我自己编写了一个函数,在不使用 opencv2 模板匹配函数的情况下将 5 的心匹配到 5 的心,结果结果很好,但问题是我找不到任何解决方案来计算数量匹配的模板,我尝试了 How to count the number of objects detected with Template Matching? 中的几种解决方案 但它们都不起作用,顺便说一句,我的代码运行速度非常慢
这是我的代码:
import numpy as np
import cv2
import math
def cross_corr(F,H):
w = F.shape[1] - H.shape[1] + 1
h = F.shape[0] - H.shape[0] + 1
R = []
for i in range(len(F)):
for j in range(len(F[0])):
img = np.array(F[i:i+len(H),j:j+len(H[0])].copy())
if img.shape == H.shape:
temp = img*H
R.append(sum(sum(temp)))
R = np.array(R)
maxx = np.amax(R)
for i in range(len(R)):
R[i] = ((R[i]-0)*255)/maxx
return np.reshape(R,(w,h))
image = cv2.imread('CS111/img/5_of_heart.png',0)
f = cv2.imread('CS111/img/heart_of_5.png',0)
Result = np.array(cross_corr(image,f),dtype = np.uint8)
h,w = f.shape
loc = np.where(Result > 200)
for pt in zip(*loc[::-1]):
cv2.rectangle(image,pt,(pt[0] + w,pt[1] + h),255,1)
cv2.imshow("img",Result)
cv2.waitKey(0)
cv2.imshow("img",image)
cv2.waitKey(0)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。