python opencv模板匹配多目标_OpenCv多目标模板匹配

该博客介绍了如何使用Python和OpenCV进行多目标模板匹配。首先通过cvMatchTemplate进行匹配,然后利用cvMinMaxLoc寻找全局最小值,并通过修改结果图像中找到的最小值区域来排除干扰,从而找到下一个最小值。通过不断迭代,实现多目标检测。示例代码展示了从源图像中找出两个模板匹配的位置。
摘要由CSDN通过智能技术生成

具体思路如下:首先,通过cvMatchTemplate模板进行匹配,匹配完成之后会产生一张结果单通道的灰色图像,再利用cvMinMaxLoc函数查找数组中全局最小值。每次最小值肯定只有一个,所以需要把每次找到的最小值(数组区域处理其它值,本文处理为最大值,也就是匹配最不像的值),这样就可以继续查找全局接剩余较小的区域了。

CvPoint getNextMinLoc(IplImage *result, CvPoint minLoc, int maxVaule, int templatW, int templatH)

{

// 先将第一个最小值点附近两倍模板宽度和高度的都设置为最大值防止产生干扰

int startX = minLoc.x - templatW;

int startY = minLoc.y - templatH;

int endX = minLoc.x + templatW;

int endY = minLoc.y + templatH;

if(startX < 0 || startY < 0)

{

startX = 0;

startY = 0;

}

if(endX > result->width - 1 || endY > result->height - 1)

{

endX = result->width - 1;

endY = result->height - 1;

}

for(int y = startY; y < endY; y++)

for

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值