输出一段基于opencv c++的模板匹配代码
时间: 2024-01-01 16:04:01 浏览: 83
好的,以下是一个基于OpenCV C的模板匹配代码示例:
```
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
// 读取源图像和模板图像
Mat srcImage = imread("source.jpg");
Mat templateImage = imread("template.jpg");
// 判断图像是否读取成功
if (srcImage.empty() || templateImage.empty())
{
cout << "Failed to read image(s)." << endl;
return -1;
}
// 进行模板匹配
Mat resultImage;
matchTemplate(srcImage, templateImage, resultImage, TM_CCOEFF_NORMED);
// 归一化匹配结果
normalize(resultImage, resultImage, 0, 1, NORM_MINMAX, -1, Mat());
// 寻找最大值
Point maxLoc;
minMaxLoc(resultImage, 0, 0, 0, &maxLoc, Mat());
// 绘制匹配结果的矩形框
rectangle(srcImage, maxLoc, Point(maxLoc.x + templateImage.cols, maxLoc.y + templateImage.rows), Scalar::all(0), 2, 8, 0);
// 显示匹配结果
imshow("Matching Result", srcImage);
waitKey(0);
return 0;
}
```
该程序使用OpenCV C库实现了模板匹配功能,通过读取源图像和模板图像,进行模板匹配并绘制匹配结果的矩形框。
阅读全文