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

来源:互联网 发布:淘宝我的发票在哪里看 编辑:程序博客网 时间:2024/06/11 21:39

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

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

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

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

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

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

// opencv模板匹配.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include <opencv2/highgui/highgui.hpp>    #include <opencv2/imgproc/imgproc.hpp>    #include <opencv2/core/core.hpp>    #include <string>#include <iostream>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

这是template:



原创粉丝点击