模板匹配
2017-10-12 21:47
148 查看
日常opencv,这里用了女神的图片
// 模板匹配.cpp: 用一个模板滑动窗口去匹配某张图片的区域 // #include "stdafx.h" #include<iostream> #include<highgui\highgui.hpp> #include<opencv2\imgproc\imgproc.hpp> using namespace cv; using namespace std; #define WIN_NAME1 "【原始窗口】" #define WIN_NAME2 "【效果窗口】" Mat g_srcImage; Mat g_templateImage; Mat resultImage; int g_nMaxTrackbarNum = 5; int g_nMatchMethod; void on_Matching(int, void *) { Mat srcImage; g_srcImage.copyTo(srcImage); //初始化用于结果输出的矩阵 int resultImage_rows = srcImage.rows + 1 - g_templateImage.rows; int resultImage_cols = srcImage.cols + 1 - g_templateImage.cols; resultImage.create(resultImage_rows, resultImage_cols, CV_32F); //进行匹配和标准化 matchTemplate(g_srcImage, g_templateImage, resultImage, g_nMatchMethod); normalize(resultImage, resultImage, 0, 1, NORM_MINMAX, -1, Mat()); //通过函数minMax()寻找最匹配的位置 double minValue; double maxValue; Point minLocation; Point maxLocation; Point matchLocation; minMaxLoc(resultImage, &minValue, &maxValue, &minLocation, &maxLocation); if (g_nMatchMethod == TM_SQDIFF || g_nMatchMethod == TM_SQDIFF_NORMED) matchLocation = minLocation; else matchLocation = maxLocation; rectangle(srcImage,matchLocation, Point(matchLocation.x + g_templateImage.cols, matchLocation.y + g_templateImage.rows),Scalar(0, 250, 250),2,LINE_AA,0); rectangle(resultImage, matchLocation, Point(matchLocation.x + g_templateImage.cols, matchLocation.y + g_templateImage.rows), Scalar(0, 250, 250), 2, LINE_AA, 0); //展示两张图片 imshow(WIN_NAME1,srcImage); imshow(WIN_NAME2, resultImage); } int main() { g_srcImage = imread("1.jpg", 1); g_templateImage = imread("2.jpg", 1); namedWindow(WIN_NAME1, WINDOW_AUTOSIZE); namedWindow(WIN_NAME2, WINDOW_AUTOSIZE); createTrackbar("方法", WIN_NAME1, &g_nMatchMethod,g_nMaxTrackbarNum, on_Matching); on_Matching(0, 0); waitKey(0); return 0; }
相关文章推荐
- 利用特征点(Brief,ORB,SIFT)进行图像匹配,模板匹配
- HDU2255 KM完全匹配模板题收藏
- 字符识别OCR研究一(模板匹配&BP神经网络训练)
- EmguCV Image类中的函数(四)使用MatchTemplate函数进行模板匹配
- 模板匹配之zernike矩
- opencv 单目标模板匹配(只适用于模板与目标尺度相同)
- hdu 2063 过山车 (最大匹配 匈牙利算法模板)
- Python+OpenCV学习(7)---模板匹配
- poj 2239 Selecting Courses(二分匹配简单模板)
- hdu_1507 二分图,最大匹配 原创模板!
- ACM 二分图匹配 匈牙利匹配模板 URAL 1997
- 最大流,最大权二分匹配,二分匹配算法模板
- Java利用MessageFormat实现短信模板的匹配
- POJ2446 模板盖格子 简单二分匹配
- 模板匹配及其源代码---Edge Based Template Matching
- POJ-1274-The Perfect Stall【二分图最大匹配】【模板题】
- OpenCV中的模板匹配方法及其应用
- 使用Opencv中matchTemplate模板匹配方法跟踪移动目标
- HDU4185-Oil Skimming(二分匹配,匈牙利模板)
- 基于模板匹配和遗传算法的人眼定位