opencv 搜索图像


opencv能做的事情实在太多了, 比如, 搜索图像。


一般我们有一副小图像, 称之为模式图像, 然后我们有一副大图像, 称之为搜索图像。 我们希望搜索出大图像中小图像的位置, 怎么做呢?


具体我们有两种方法, 一种是计算相关性, 另一种是傅里叶变换, 当然你也可以用全局相减方法算, 不过误差会比较大。


傅里叶变换我写了, 但是没有正确结果, 据我所知, 分三步, 第一步, 把源图像和目标图像都扩展到同一大小, 小图像简单的在右侧和下册补零即可。。 然后两者分别作傅里叶变换, 然后两个傅里叶矩阵点乘(就是每个点乘以对应点), 得到一个新傅里叶矩阵, 再做逆傅里叶变换, 得到一个图像, 这个图像的最大值就是小图像在大图像的位置?但我这样计算, 不对, 不知道为什么。


另一种方法是计算相关性, 具体方法名叫ncc, http://www.cs.ubc.ca/research/deaton/remarks_ncc.html, 这是作者网页, 不过好在opecncv贴心的为我们提供了继承代码。

只需调用

matchTemplate(src_gray,tmpl_gray,result,CV_TM_CCOEFF_NORMED);  
double minValue,maxValue;  
Point minLoc,maxLoc;  
 Point matchLoc;  
minMaxLoc(result,&minValue,&maxValue,&minLoc,&maxLoc,Mat());  
即可。


opencv还提供了其他几种计算相关性的方法, 具体见http://blog.csdn.net/ubunfans/article/details/23623687

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值