分类: 编程 |
VisionWare中的理论,自己编写的代码。
1.基本术语
2.相似性度量(归一化相关系数和分数)
http://s10/mw690/4ae37197tx6CbHWWmlrb9&690
其中I为实时图像;M为定位核;m和n分别为定位核的宽度和长度;N=m×n。实时图像和定位核的空间关系如下图所示。
http://s10/mw690/4ae37197tx6CbI9iOr799&690
http://s9/mw690/4ae37197tx6CbIFc1w438&690
值为-1.0表示完全误匹配,其中a<0,发现的模式和定位核极性相反。
http://s10/mw690/4ae37197tx6CbJ2AWz789&690
3.代码
先把公式中各分量的计算公式写成函数,总共有5个
http://s4/mw690/4ae37197tx6CbK8RlHZd3&690
http://s9/mw690/4ae37197tx6CbNlDjy848&690
http://s5/mw690/4ae37197tx6CbKLzyF654&690
http://s1/mw690/4ae37197tx6CbKQYIXC80&690
http://s6/mw690/4ae37197tx6CbKZATYh25&690
根据上面5个公式,直接写匹配函数,该函数遍历了待匹配图像的所有的可能偏移位置,最后找到一个相似度最高的
http://s1/mw690/4ae37197tx6CbLKpM3Ka0&690
http://s3/mw690/4ae37197tx6CbLKqMIq72&690
http://s1/mw690/4ae37197tx6CbLKrYpaf0&690
直接利用openCV里的函数读取模板和待匹配图像,利用match函数即可,其最佳匹配结果保存在类私有变量temp中,该成员是一个结构,在match中可以看到其内部结构,x,y即为定位位置,val为相似度。
http://s12/mw690/4ae37197tx6CbLTANCP5b&690
以上所有函数均通过本人测试,由于算法遍历了所有情况,故运行速度比较慢,可利用搜索策略进行优化。