灰度值模板匹配算法代码
时间: 2023-09-10 21:07:19 浏览: 75
c#+halcon roi,灰度值,模板匹配
以下是一个简单的灰度值模板匹配算法的代码示例:
```
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
// 读取原图和模板
Mat src = imread("original_image.jpg", IMREAD_GRAYSCALE);
Mat tpl = imread("template_image.jpg", IMREAD_GRAYSCALE);
// 创建结果矩阵
Mat result(src.rows - tpl.rows + 1, src.cols - tpl.cols + 1, CV_32FC1);
// 执行模板匹配
matchTemplate(src, tpl, result, TM_CCOEFF_NORMED);
// 找到最大匹配值的位置
Point maxLoc;
minMaxLoc(result, NULL, NULL, NULL, &maxLoc);
// 绘制矩形框标记匹配位置
rectangle(src, maxLoc, Point(maxLoc.x + tpl.cols, maxLoc.y + tpl.rows), Scalar(0, 0, 255), 2);
// 显示结果图像
imshow("Match result", src);
waitKey(0);
return 0;
}
```
在这个示例中,我们使用 OpenCV 库来读取原始图像和模板,然后创建一个结果矩阵来保存模板匹配结果。我们使用 matchTemplate 函数执行模板匹配,并使用 minMaxLoc 函数找到最大匹配值的位置。最后,我们使用 rectangle 函数在原始图像中绘制一个矩形框来标记匹配位置,并在屏幕上显示结果图像。
阅读全文