opencv模板匹配笔记----C++练手项目

  1.今天依然是希望能够练习编程能力以及对程序的理解能力,所以找了这个opencv,以下是自己的笔记,以及一些资源地址。

  2.opencv下载地址:点击打开链接

  3.opencv环境配置教程:VS下永久配置教程     图文配置opencv

  4.opencv中的matchTemplate函数:点击打开链接

  5.模板匹配项目相关教程:使用Opencv&&C++进行实现模板匹配

  6.自己写的一个简易的模板匹配,没有用到滑块:

// opencv模板匹配.cpp: 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include     
#include     
#include     
#include 
#include 
using namespace std;
using namespace cv;

Mat image, templ, result;


int main()
{
	image = imread("ori.jpg");
	templ = imread("template.jpg");


	Mat image_display;
	image.copyTo(image_display);

	matchTemplate(image, templ, result, CV_TM_SQDIFF);
	normalize(result, result, 0, 1, NORM_MINMAX, -1, Mat());

	double minVal, maxVal;
	Point minLoc, maxLoc;
	minMaxLoc(result, &minVal, &maxVal, &minLoc, &maxLoc, Mat());
	//因为我的match_method固定了这个方法,所以越小匹配越高,直接提取minLoc就行了
	rectangle(image_display, minLoc, Point(minLoc.x + templ.cols, minLoc.y + templ.rows), Scalar(0, 0, 255), 2, 8, 0);

	namedWindow("windows", CV_WINDOW_AUTOSIZE);
	imshow("windows", image_display);
	imwrite("result1.jpg", image_display);

	int log = waitKey(0);
	return 0;
}
效果图,也把几种match_method试过了一遍,发现matchTemplate不够精准。

这是存储的result1

opencv模板匹配笔记----C++练手项目_第1张图片

这是template:

opencv模板匹配笔记----C++练手项目_第2张图片

你可能感兴趣的:(C++,opencv,C++练手项目)