微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

计算匹配opencv2的模板数量

如何解决计算匹配opencv2的模板数量

我自己编写了一个函数,在不使用 opencv2 模板匹配函数的情况下将 5 的心匹配到 5 的心,结果结果很好,但问题是我找不到任何解决方案来计算数量匹配的模板,我尝试了 How to count the number of objects detected with Template Matching? 中的几种解决方案 但它们都不起作用,顺便说一句,我的代码运行速度非常慢

enter image description here

这是我的代码

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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?