这篇文章主要为大家展示了“C++ OpenCV如何实现模版匹配”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C++ OpenCV如何实现模版匹配”这篇文章吧。
创新互联专注于福海网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供福海营销型网站建设,福海网站制作、福海网页设计、福海网站官网定制、微信小程序开发服务,打造福海网络公司原创品牌,更为您提供福海网站排名全网营销落地服务。
模版匹配
模板匹配(TemplateMatching)就是在一幅图像中寻找和模板图像(template)最相似的区域,该方法原理简单计算速度快,能够应用于目标识别,目标跟踪等多个领域。
模版匹配就是在整个图像区域发现与给定子图像匹配的小块区域
模版匹配必须要有一个模版图像T(给定的子图像),还需要一个待检测的图像S(源图像)
在待检测的图像上,从左到右,从上到下计算模版图像与重叠子图像的匹配度,匹配度越大,两者相同的可能性就越大
相关API matchTemplate
MatchTemplate( InputArrray image, InputArray templ,
OutputArray result,int method );
Image //源图像
Templ //模板图像
Result //输出结果 必须是单通道32位浮点数,假设源图像WxH,模版图像
wxh,到结果必须为W-w+1,H-h+1的大小
Method //计算匹配程度的方法
关于匹配方法,使用不同的方法产生的结果的意义可能不太一样,有些返回的值越大表示匹配程度越好,而有些方法返回的值越小表示匹配程度越好
关于参数 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归一化相关系数匹配法
代码演示
新建一个项目opencv-0022,配置属性(VS2017配置OpenCV通用属性),然后在源文件写入#include和main方法
模版匹配
因为方法有六种,我们在图像上加了个TrackBar,再定义一个方法用于实现TrackBar的事件
然后是实现Match_Void的方法
运行后的效果
可以看到左边是我们的源图,中间的我们的要匹配的图,运行起来后直接就匹配到对应的图了
通过改变上面的算法类型,得到不同的效果
以上是“C++ OpenCV如何实现模版匹配”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!