vs调用matchtemplate
时间: 2023-09-13 11:05:09 浏览: 57
在 Visual Studio 中调用 matchTemplate 函数可以使用以下步骤:
1. 打开 Visual Studio,并创建一个新的控制台应用程序项目。
2. 在项目中添加要匹配的源图像和模板图像。将它们保存在项目文件夹中。
3. 在项目中打开 main.cpp 文件,并添加以下代码:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
// 读取源图像和模板图像
Mat sourceImage = imread("source.jpg", IMREAD_GRAYSCALE);
Mat templateImage = imread("template.jpg", IMREAD_GRAYSCALE);
// 定义结果图像的尺寸
int resultCols = sourceImage.cols - templateImage.cols + 1;
int resultRows = sourceImage.rows - templateImage.rows + 1;
// 创建结果图像
Mat resultImage(resultRows, resultCols, CV_32FC1);
// 使用 matchTemplate 函数进行匹配
matchTemplate(sourceImage, templateImage, resultImage, TM_CCOEFF_NORMED);
// 查找最佳匹配位置
double minVal, maxVal;
Point minLoc, maxLoc;
minMaxLoc(resultImage, &minVal, &maxVal, &minLoc, &maxLoc);
// 在源图像中绘制矩形框
rectangle(sourceImage, maxLoc, Point(maxLoc.x + templateImage.cols, maxLoc.y + templateImage.rows), Scalar(0, 0, 255), 2);
// 显示源图像和结果图像
imshow("Source Image", sourceImage);
imshow("Result Image", resultImage);
waitKey(0);
return 0;
}
```
4. 将源图像和模板图像的文件名替换为自己的图像文件名。
5. 编译并运行程序,将显示源图像和结果图像。在源图像中可以看到找到的最佳匹配位置用红色矩形框标记。
阅读全文