Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用cv2.TM_CCOEFF_NORMED获取多实例对象模板匹配的置信度_Python_Opencv_Image Processing_Opencv Python_Template Matching - Fatal编程技术网

Python 使用cv2.TM_CCOEFF_NORMED获取多实例对象模板匹配的置信度

Python 使用cv2.TM_CCOEFF_NORMED获取多实例对象模板匹配的置信度,python,opencv,image-processing,opencv-python,template-matching,Python,Opencv,Image Processing,Opencv Python,Template Matching,我使用模板匹配来搜索具有多个实例的对象 我指的是中的教程 这是我目前使用的代码 导入cv2 将numpy作为np导入 从matplotlib导入pyplot作为plt img_rgb=cv2.imread('mario.png') img_gray=cv2.CVT颜色(img_rgb,cv2.COLOR_BGR2GRAY) template=cv2.imread('mario_coin.png',0) w、 h=模板。形状[:-1] res=cv2.matchTemplate(img_gray,

我使用模板匹配来搜索具有多个实例的对象

我指的是中的教程

这是我目前使用的代码

导入cv2
将numpy作为np导入
从matplotlib导入pyplot作为plt
img_rgb=cv2.imread('mario.png')
img_gray=cv2.CVT颜色(img_rgb,cv2.COLOR_BGR2GRAY)
template=cv2.imread('mario_coin.png',0)
w、 h=模板。形状[:-1]
res=cv2.matchTemplate(img_gray,template,cv2.TM_cceff_NORMED)
阈值=0.8
loc=np.其中(res>=阈值)
对于邮政编码(*loc[:-1]):
cv2.矩形(img_rgb,pt,(pt[0]+w,pt[1]+h),(0,0255),2)
cv2.imwrite('res.png',img_rgb)
这里,他们使用
np.where(res>=threshold)
过滤置信度大于给定阈值的元素

我应该如何修改代码以获得在
loc
中找到的每个匹配的置信值? 所以我想要的理想结果是这样的

对于匹配中的匹配:
x、 y,w,h,置信度=匹配
打印(x、y、w、h、置信度)
在单个实例的模板匹配中,我们可以使用
cv2.minMaxLoc(res)
来获得置信度,但是如何在多个实例中对每个匹配进行置信度

示例输入图像:

示例模板:
答案就在你面前

“res”变量包含图像中除右边界和下边界附近的点之外的所有点的置信度。点的置信度是指左上角位于该点且宽度和高度与模板图像的宽度和高度相同的矩形的置信度

因此,要获得找到的每个匹配的置信度,请在for循环中添加一行:

confidence = res[pt[1]][pt[0]]

“置信度”变量将包含该匹配的置信度。

请提供图像。@RahulKedia补充道