图像处理之模板匹配
来源:互联网 发布:广州java架构师培训 编辑:程序博客网 时间:2024/05/17 05:19
Opencv提供的模板匹配方法:
/* Template matching methods */enum{ CV_TM_SQDIFF =0, CV_TM_SQDIFF_NORMED =1, CV_TM_CCORR =2, CV_TM_CCORR_NORMED =3, CV_TM_CCOEFF =4, CV_TM_CCOEFF_NORMED =5};
#include "cv.h"#include "highgui.h"using namespace cv;using namespace std;int main(int argc,char *argv[]){Mat temp,search,result,resultU8;temp=imread("temp.jpg");search=imread("search.jpg");result.create((search.rows-temp.rows+1),(search.cols-temp.cols+1),CV_32FC1);matchTemplate(search,temp,result,CV_TM_SQDIFF);normalize(result,result,0,1,NORM_MINMAX);//convertScaleAbs(result,resultU8);或转CV_8UC1图像imshow("result",result);double minVal,maxVal;Point minIdx,maxIdx;minMaxLoc(result,&minVal,&maxVal,&minIdx,&maxIdx);cout<<"min:"<<minIdx<<":"<<minVal<<";max:"<<maxIdx<<":"<<maxVal<<endl;rectangle(search,minIdx,Point(minIdx.x+temp.cols-1,minIdx.y+temp.rows-1),Scalar(0,255,255),2);imshow("search",search);waitKey(0);destroyAllWindows();return 0;}注意,本实验采用是直接从search图像截取模板,这样匹配效果是很好的,实际的模板都是大众化。
尽管这样,CV_TM_CCORR方法获取的结果是错误的!
下面展示程序效果:(其他两类方法的匹配的位置应有最大值)
0 0
- 图像处理之模板匹配
- matlab/opencv图像处理之模板匹配
- 图像处理之基于NCC模板匹配识别
- 图像处理之基于NCC模板匹配识别
- 图像处理之------匹配
- 图像比较之模板匹配
- 【图像处理】C++实现模板匹配
- 图像处理中的模板匹配c++实现
- 图像处理之直方图比较(匹配)
- 图像处理之_轮廓匹配
- 图像处理技术 —— 模板匹配算法
- 图像处理中的模板匹配(程序基于Op…
- 图像处理中的模板匹配(程序基于Op…
- Python3与OpenCV3.3 图像处理(十四)--模板匹配
- 图像模板匹配
- 图像分析--模板匹配
- opencv 图像模板匹配
- OpenCV之imgproc 模块. 图像处理(4)直方图均衡化 直方图计算 直方图对比 反向投影 模板匹配
- wf
- 前设计师解读苹果四大神话
- java
- 如何阅读别人的代码
- linux内核分段和分页的原因
- 图像处理之模板匹配
- selsect 函数(一)
- C++面试
- Linux下python2.7.8的安装
- Android DatePicker 显示问题 可分别隐藏年、月或日
- 7.13 面向对象
- kernel_list讲解
- C语言之算法初步(汉诺塔--递归算法)
- 因为CGRect,CGPoint等不是NSObject的子类,因此不能够直接添加到NSMutableArray中,所以要先将其转换成NSObject的子类。NSValue类可以解决这个问题,见NSVa