#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
using namespace std;
#define WINDOW_NAME1 "【原始图片】" //为窗口标题定义的宏
#define WINDOW_NAME2 "【匹配窗口】" //为窗口标题定义的宏
Mat g_srcImage; Mat g_templateImage; Mat g_resultImage;
int g_nMatchMethod;
int g_nMaxTrackbarNum = 5;
static void ShowHelpText()
{
printf("\n\n 当前使用的OpenCV版本为:" CV_VERSION);
printf("\n\n ----------------------------------------------------------------------------\n");
//输出一些帮助信息
printf("\t欢迎来到【模板匹配】示例程序~\n");
printf("\n\n\t请调整滑动条观察图像效果\n\n");
printf("\n\t滑动条对应的方法数值说明: \n\n"
"\t\t方法【0】- 平方差匹配法(SQDIFF)\n"
"\t\t方法【1】- 归一化平方差匹配法(SQDIFF NORMED)\n"
"\t\t方法【2】- 相关匹配法(TM CCORR)\n"
"\t\t方法【3】- 归一化相关匹配法(TM CCORR NORMED)\n"
"\t\t方法【4】- 相关系数匹配法(TM COEFF)\n"
"\t\t方法【5】- 归一化相关系数匹配法(TM COEFF NORMED)\n");
}
void on_Matching(int, void*)
{
//【1】给局部变量初始化
Mat srcImage;
g_srcImage.copyTo(srcImage);
//【2】初始化用于结果输出的矩阵
int resultImage_rows = g_srcImage.rows - g_templateImage.rows + 1;
int resultImage_cols = g_srcImage.cols - g_templateImage.cols + 1;
g_resultImage.create(resultImage_rows, resultImage_cols, CV_32FC1);
//【3】进行匹配和标准化
// 当模板匹配采用CV_TM_SQDIFF(g_nMatchMethod = 0)模式时,minValue值越小,说明匹配度越高
matchTemplate(g_srcImage, g_templateImage, g_resultImage, g_nMatchMethod);
normalize(g_resultImage, g_resultImage, 0, 1, NORM_MINMAX, -1, Mat());
//【4】通过函数 minMaxLoc 定位最匹配的位置
double minValue;
double maxValue;
Point minLocation;
Point maxLocation;
Point matchLocation;
minMaxLoc(g_resultImage, &minValue, &maxValue, &minLocation, &maxLocation, Mat());
//【5】对于方法 SQDIFF 和 SQDIFF_NORMED, 越小的数值有着更高的匹配结果. 而其余的方法, 数值越大匹配效果越好
if (g_nMatchMethod == TM_SQDIFF || g_nMatchMethod == TM_SQDIFF_NORMED)
{
matchLocation = minLocation;
}
else
{
matchLocation = maxLocation;
}
//【6】绘制出矩形,并显示最终结果
rectangle(srcImage, matchLocation, Point(matchLocation.x + g_templateImage.cols, matchLocation.y + g_templateImage.rows), Scalar(0, 0, 255), 2, 8, 0);
rectangle(g_resultImage, matchLocation, Point(matchLocation.x + g_templateImage.cols, matchLocation.y + g_templateImage.rows), Scalar(0, 0, 255), 2, 8, 0);
imshow(WINDOW_NAME1, srcImage);
imshow(WINDOW_NAME2, g_resultImage);
}
int main()
{
//【0】改变console字体颜色
system("color 1F");
//【0】显示帮助文字
ShowHelpText();
//【1】载入原图像和模板块
g_srcImage = imread("1.jpg", 1);
g_templateImage = imread("2.jpg", 1);
//【2】创建窗口
namedWindow(WINDOW_NAME1, WINDOW_AUTOSIZE);
namedWindow(WINDOW_NAME2, WINDOW_AUTOSIZE);
//【3】创建滑动条并进行一次初始化
createTrackbar("方法", WINDOW_NAME1, &g_nMatchMethod, g_nMaxTrackbarNum, on_Matching);
on_Matching(0, 0);
waitKey(0);
return 0;
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
【OpenCv基础】第五十一讲 模板匹配.zip (92个子文件)
C#
WindowsFormsApp
WindowsFormsApp
bin
Debug
OpenCvSharp.Blob.dll 39KB
OpenCvSharp.Blob.xml 55KB
dll
x86
OpenCvSharpExtern.dll 31.83MB
opencv_ffmpeg400.dll 16.84MB
x64
OpenCvSharpExtern.dll 49MB
opencv_ffmpeg400_64.dll 17.79MB
2.jpg 5KB
1.jpg 98KB
OpenCvSharp.UserInterface.pdb 3KB
WindowsFormsApp.exe 11KB
OpenCvSharp.Extensions.dll 25KB
OpenCvSharp.dll 821KB
WindowsFormsApp.pdb 32KB
OpenCvSharp.pdb 300KB
OpenCvSharp.UserInterface.dll 13KB
WindowsFormsApp.exe.config 189B
OpenCvSharp.xml 1.98MB
OpenCvSharp.UserInterface.xml 9KB
OpenCvSharp.Blob.pdb 15KB
OpenCvSharp.Extensions.xml 14KB
OpenCvSharp.Extensions.pdb 10KB
Form1.Designer.cs 3KB
packages.config 156B
Program.cs 441B
WindowsFormsApp.csproj 6KB
Form1.cs 4KB
Form1.resx 6KB
App.config 189B
Properties
Resources.resx 5KB
Settings.settings 249B
AssemblyInfo.cs 1KB
Settings.Designer.cs 1KB
Resources.Designer.cs 3KB
packages
OpenCvSharp3-AnyCPU.4.0.0.20181129
runtimes
win10-x86
native
OpenCvSharpExtern.dll 31.83MB
opencv_ffmpeg400.dll 16.84MB
win10-x64
native
OpenCvSharpExtern.dll 49MB
opencv_ffmpeg400_64.dll 17.79MB
.signature.p7s 9KB
OpenCvSharp3-AnyCPU.4.0.0.20181129.nupkg 50.58MB
lib
net461
OpenCvSharp.Blob.dll 39KB
OpenCvSharp.Blob.xml 55KB
OpenCvSharp.UserInterface.pdb 3KB
OpenCvSharp.Extensions.dll 25KB
OpenCvSharp.dll 821KB
OpenCvSharp.pdb 300KB
OpenCvSharp.UserInterface.dll 13KB
OpenCvSharp.xml 1.98MB
OpenCvSharp.UserInterface.xml 9KB
OpenCvSharp.Blob.pdb 15KB
OpenCvSharp.Extensions.xml 14KB
OpenCvSharp.Extensions.pdb 10KB
net20
OpenCvSharp.Blob.dll 39KB
OpenCvSharp.Blob.xml 55KB
OpenCvSharp.dll 823KB
OpenCvSharp.pdb 301KB
OpenCvSharp.xml 1.98MB
OpenCvSharp.Blob.pdb 15KB
netstandard2.0
OpenCvSharp.Blob.dll 39KB
OpenCvSharp.Blob.xml 55KB
OpenCvSharp.Extensions.dll 18KB
OpenCvSharp.dll 821KB
OpenCvSharp.pdb 299KB
OpenCvSharp.xml 1.99MB
OpenCvSharp.Blob.pdb 15KB
OpenCvSharp.Extensions.xml 7KB
OpenCvSharp.Extensions.pdb 8KB
net40
OpenCvSharp.Blob.dll 39KB
OpenCvSharp.Blob.xml 55KB
OpenCvSharp.UserInterface.pdb 3KB
OpenCvSharp.Extensions.dll 25KB
OpenCvSharp.dll 820KB
OpenCvSharp.pdb 300KB
OpenCvSharp.UserInterface.dll 13KB
OpenCvSharp.xml 1.98MB
OpenCvSharp.UserInterface.xml 9KB
OpenCvSharp.Blob.pdb 15KB
OpenCvSharp.Extensions.xml 14KB
OpenCvSharp.Extensions.pdb 10KB
build
OpenCvSharp3-AnyCPU.props 1KB
WindowsFormsApp.sln 1KB
python
PythonApplication
PythonApplication.sln 993B
PythonApplication
2.jpg 5KB
1.jpg 98KB
PythonApplication.pyproj 2KB
PythonApplication.py 3KB
C++
ConsoleApplication
ConsoleApplication
ConsoleApplication.vcxproj 7KB
2.jpg 5KB
1.jpg 98KB
ConsoleApplication.vcxproj.filters 980B
ConsoleApplication.vcxproj.user 168B
ConsoleApplication.cpp 3KB
ConsoleApplication.sln 1KB
共 92 条
- 1
资源评论
激萌の小宅
- 粉丝: 224
- 资源: 78
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功