opencv 模板匹配目标检测


 首先,参看上图。假设褐色的大图为待测图片,红色小图为模板图片。

       1.result中数据的含义。

       模板匹配函数cvMatchTemplate依次计算模板与待测图片的重叠区域的相似度,并将结果存入映射图像result当中,也就是说result图像中的每一个点的值代表了一次相似度比较结果。

      2.result的尺寸大小。

       如图可知,模板在待测图像上每次在横向或是纵向上移动一个像素,并作一次比较计算,由此,横向比较W-w+1次,纵向比较H-h+1次,从而得到一个(W-w+1)×(H-h+1)维的结果矩阵,result即是用图像来表示这样的矩阵,因而图像result的大小为(W-w+1)×(H-h+1)。

       3.如何result中获得最佳匹配区域

       使用函数cvMinMaxLoc(result,&min_val,&max_val,&min_loc,&max_loc,NULL);从result中提取最大值(相似度最高)以及最大值的位置(即在result中该最大值max_val的坐标位置max_loc,即模板滑行时左上角的坐标,类似于图中的坐标(x,y)。)

由此得到:rect=cvRect(max_loc.x,max_loc.y,tmp->width,tmp->height);rect表示的矩形区域即是最佳的匹配区域。

上面确定最佳位置是用了max_loc。但是确定矩形位置是使用的是max_loc还是min_loc,这个跟匹配时采用的方法参数有关,具体如下:

  关于参数 method:

      CV_TM_SQDIFF 平方差匹配法:该方法采用平方差来进行匹配;最好的匹配值为0;匹配越差,匹配值越大。
      CV_TM_CCORR 相关匹配法:该方法采用乘法操作;数值越大表明匹配程度越好。
      CV_TM_CCOEFF 相关系数匹配法:1表示完美的匹配;-1表示最差的匹配。
      CV_TM_SQDIFF_NORMED 归一化平方差匹配法
      CV_TM_CCORR_NORMED 归一化相关匹配法
      CV_TM_CCOEFF_NORMED 归一化相关系数匹配法

下面是不同的比较方法,可以使用其中的一种 (I 表示图像,T - 模板, R - 结果. 模板与图像重叠区域 x'=0..w-1, y'=0..h-1 之间求和): 


-----------------------------------------------------------------------------------------------


OpenCV模板匹配是一种基于图像相似度的目标检测方法。它通过在输入图像中寻找与给定模板最相似的局部区域来实现目标检测。在多目标检测中,我们可以使用模板匹配方法来识别多个目标。 首先,我们需要准备好目标的模板图像。这是我们想要检测的目标的一个样本图像。然后,我们需要加载输入图像,这是我们要在其中进行目标检测的图像。 接下来,我们可以使用OpenCV模板匹配函数(如matchTemplate)来在输入图像中寻找与模板图像最相似的区域。该函数将返回每个匹配的相似度值。我们可以选取相似度最高的匹配结果作为目标的检测结果。 如果我们想要检测多个目标,我们可以采用不同的方法。一种方法是使用滑动窗口的技术,将输入图像划分为多个窗口,并在每个窗口上进行模板匹配。另一种方法是使用多尺度的技术,对输入图像进行多个尺度的缩放,并在每个尺度上进行模板匹配。 需要注意的是,模板匹配方法在目标和背景之间的对比度较高时效果较好。当目标和背景之间的对比度较低时,模板匹配方法可能无法准确地检测目标。 总结而言,OpenCV模板匹配方法可用于目标检测。它可以通过找到输入图像中与给定模板最相似的区域来实现目标的定位。在多目标检测中,我们可以使用滑动窗口或多尺度的技术来识别多个目标。然而,需要注意的是,模板匹配方法对目标和背景之间对比度的要求较高。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值