opencv之图像匹配
输入一张原图和一张你从原图上扣下来的矩形图,用opencv寻找到这个区域。代码如下:
#include <opencv2/opencv.hpp> #include <iostream> int main() { // 读取源图像和模板 cv::Mat srcImg = cv::imread("targe_graph.jpg"); cv::Mat tmplImg = cv::imread("template.jpg"); // 创建结果图像矩阵 cv::Mat resultImg; int resultCols = srcImg.cols - tmplImg.cols + 1; int resultRows = srcImg.rows - tmplImg.rows + 1; resultImg.create(resultRows, resultCols, CV_32FC1); // 进行模板匹配 cv::matchTemplate(srcImg, tmplImg, resultImg, cv::TM_CCOEFF_NORMED); // 找到最佳匹配位置 double minVal, maxVal; cv::Point minLoc, maxLoc; cv::minMaxLoc(resultImg, &minVal, &maxVal, &minLoc, &maxLoc, cv::Mat()); // 在源图像上标记匹配位置 cv::Point rectStart = maxLoc; cv::Point rectEnd(maxLoc.x + tmplImg.cols, maxLoc.y + tmplImg.rows); cv::rectangle(srcImg, rectStart, rectEnd, cv::Scalar(0, 0, 255), 2); // 显示矩形框的左上角坐标 std::cout << "匹配的矩形框的左上角坐标 (" << rectStart.x << ", " << rectStart.y << ")" << std::endl; // 显示源图像并等待用户按下任意键退出程序 cv::imshow("效果图", srcImg); cv::waitKey(); return 0; }
在控制台显示匹配出的矩形图左上角坐标:
效果图:
抠出来的矩形图:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)