欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

c++ opencv 模板匹配

程序员文章站 2022-04-01 07:58:50
...
#include<iostream>
#include<opencv2\opencv.hpp>

using namespace std;
using namespace cv;


cv::Mat Template_matching(cv::Mat src, cv::Mat templ)
{

	cv::Mat ftmp; cv::Mat corp_result;
	double minVal; double maxVal; cv::Point minLoc; cv::Point maxLoc;
	cv::Point matchLoc;

	matchTemplate(src, templ, ftmp, 1);//有6种匹配方式,这里的1 是其中一种
	normalize(ftmp, ftmp, 0, 1, cv::NORM_MINMAX, -1, cv::Mat());
	minMaxLoc(ftmp, &minVal, &maxVal, &minLoc, &maxLoc); //找到最佳匹配点
	//rectangle(src, cv::Rect(minLoc.x, minLoc.y, templ.cols, templ.rows), 2, 8, 0); //在原图上框出来
	corp_result = src(cv::Rect(minLoc.x, minLoc.y, templ.cols, templ.rows));
	return corp_result;
}


int main() {
	//模板匹配
	cv::Mat src = imread("1.bmp", 1);  // 待匹配的图片,原图
	cv::Mat templ = imread("2.bmp", 1);// 模板图

	cv::Mat corp_result = Template_matching(src, templ);
	imwrite("F:/123.bmp", corp_result);
}

 

相关标签: c++与opencv3学习