c++通过模板检测图像代码
时间: 2023-10-18 11:02:33 浏览: 40
C++可以通过模板来检测图像。下面是一个使用C++ OpenCV库的例子,它可以对输入图像进行模板匹配,以检测是否存在与模板匹配的区域:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
Mat img = imread("image.jpg");
Mat templ = imread("template.jpg");
Mat result;
matchTemplate(img, templ, result, TM_CCOEFF_NORMED);
double minVal, maxVal;
Point minLoc, maxLoc;
minMaxLoc(result, &minVal, &maxVal, &minLoc, &maxLoc);
if (maxVal > 0.8) {
// 检测到模板匹配的区域
rectangle(img, maxLoc, Point(maxLoc.x + templ.cols, maxLoc.y + templ.rows), Scalar(0, 255, 0), 2);
imshow("Matched", img);
waitKey(0);
return 0;
}
else {
// 没有检测到模板匹配的区域
cout << "Template not found" << endl;
return -1;
}
}
```
在上面的代码中,我们首先使用`imread`函数加载输入图像和模板图像。然后,我们使用`matchTemplate`函数对输入图像进行模板匹配,并将结果保存在`result`矩阵中。接下来,我们使用`minMaxLoc`函数查找`result`中的最大值和相应的位置。如果最大值大于0.8,我们就认为我们已经找到了模板匹配的区域,并且在输入图像中绘制一个矩形框来标记它。否则,我们就认为没有找到模板匹配的区域。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)