#include <iostream>
#include "opencv/cv.h"
#include "opencv/cxcore.h"
#include "opencv/highgui.h"
using namespace std; #pragma comment ( lib,"opencv_highgui244.lib" )
#pragma comment ( lib,"opencv_core244.lib" )
#pragma comment ( lib,"opencv_imgproc244.lib" ) int main()
{
IplImage *src = cvLoadImage("src.jpg", 0);
IplImage *srcResult = cvLoadImage("src.jpg", 3); //用来显示
IplImage *templat = cvLoadImage("template1.png", 0);
IplImage *result;
if(!src || !templat)
{
cout << "打开图像失败"<< endl;
return 0;
}
int srcW, srcH, templatW, templatH, resultH, resultW;
srcW = src->width;
srcH = src->height;
templatW = templat->width;
templatH = templat->height;
if(srcW < templatW || srcH < templatH)
{
cout <<"原图不能比模板小" << endl;
return 0;
}
resultW = srcW - templatW + 1;
resultH = srcH - templatH + 1;
result = cvCreateImage(cvSize(resultW, resultH), 32, 1); //the 3rd parameter
cvMatchTemplate(src, templat, result, CV_TM_SQDIFF);
double minValue, maxValue;
CvPoint minLoc, maxLoc;
cvMinMaxLoc(result, &minValue, &maxValue, &minLoc, &maxLoc);
cvRectangle(srcResult, minLoc, cvPoint(minLoc.x + templatW, minLoc.y+ templatH), cvScalar(0,0,255));
cvNamedWindow("srcResult", 0);
cvNamedWindow("templat", 0);
cvShowImage("srcResult", srcResult);
cvShowImage("templat", templat);
cvWaitKey(0);
cvReleaseImage(&result);
cvReleaseImage(&templat);
cvReleaseImage(&srcResult);
cvReleaseImage(&src);
return 0;
}

opencv 单目标模板匹配(只适用于模板与目标尺度相同)的更多相关文章

  1. opencv::模板匹配(Template Match)

    模板匹配介绍 模板匹配就是在整个图像区域发现与给定子图像匹配的小块区域. 所以模板匹配首先需要一个模板图像T(给定的子图像) 另外需要一个待检测的图像-源图像S 工作方法,在带检测图像上,从左到右,从 ...

  2. OpenCV-Python:模板匹配

    啥叫模板匹配 模板匹配就是在大图中找小图,也就说在一幅图像中寻找另一幅模板图像的位置: OpenCV使用 cv2.matchTemplate() 实现模板匹配. import cv2 import n ...

  3. halcon 模板匹配 -- 转化 vector_angle_to_rigid

    ********************************模板匹配 ********************create_shape_model创建模板,这个函数有许多参数,其中金字塔的级数由N ...

  4. opencv 模板匹配与滑动窗口(单匹配) (多匹配)

    1单匹配: 测试图片:   code: #include <opencv\cv.h> #include <opencv\highgui.h> #include <open ...

  5. opencv如何用模板匹配寻找目标

    首先使用: MatchTemplate 比较模板和重叠的图像区域 void cvMatchTemplate( const CvArr* image, const CvArr* templ, CvArr ...

  6. 机器学习进阶-图像金字塔与轮廓检测-模板匹配(单目标匹配和多目标匹配)1.cv2.matchTemplate(进行模板匹配) 2.cv2.minMaxLoc(找出矩阵最大值和最小值的位置(x,y)) 3.cv2.rectangle(在图像上画矩形)

    1. cv2.matchTemplate(src, template, method)  # 用于进行模板匹配 参数说明: src目标图像, template模板,method使用什么指标做模板的匹配 ...

  7. 使用Opencv中matchTemplate模板匹配方法跟踪移动目标

    模板匹配是一种在图像中定位目标的方法,通过把输入图像在实际图像上逐像素点滑动,计算特征相似性,以此来判断当前滑块图像所在位置是目标图像的概率. 在Opencv中,模板匹配定义了6种相似性对比方式: C ...

  8. opencv学习之路(21)、模板匹配及应用

    一.模板匹配概念 二.单模板匹配 #include "opencv2/opencv.hpp" #include <iostream> using namespace s ...

  9. Python+OpenCV图像处理(九)—— 模板匹配

    百度百科:模板匹配是一种最原始.最基本的模式识别方法,研究某一特定对象物的图案位于图像的什么地方,进而识别对象物,这就是一个匹配问题.它是图像处理中最基本.最常用的匹配方法.模板匹配具有自身的局限性, ...

随机推荐

  1. Python3+RobotFramewok 循环判断以及Evaluate用法(三)

    本章主要介绍RF的循环,判断以及关键字Evaluate. 1. for循环 在RF中通过 :FOR 编写循环 :FOR ${i} in range 10 log ${i} @{list} create ...

  2. 同步pod容器内时区

    同步pod容器内时区 .直接修改镜像的时间设置,好处是应用部署时无需做特殊设置,但是需要手动构建Docker镜像. .部署应用时,单独读取主机的“/etc/localtime”文件,即创建pod时同步 ...

  3. iptable的四表五链

    iptable的概念中有四张表,五条链. 四张表是: filter表——过滤数据包 Nat表——用于网络地址转换(IP.端口) Mangle表——修改数据包的服务类型.TTL.并且可以配置路由实现QO ...

  4. SVN 服务器 配置

    1.目录结构 2.用户分配 3.目录权限 4.linux下的SVN服务器 5.配置svnserver.conf 注意左边不要有空格 注意文件的权限 chmod -R 777 /opt/svn/blue ...

  5. 如何查看linux系统安装时间

    第一种方法: 先查看系统盘挂到哪个分区上,然后用 dumpe2fs  查看这个磁盘分区 创建的时间,即可查出此 服务器 系统安装的时间.() # dumpe2fs /dev/sda3|grep -i ...

  6. 利用ceph-deploy安装ceph

    手工安装https://www.jianshu.com/p/b8f085ca0307 在ceph所有节点上执行 1.配置hosts cat << EOF >> /etc/hos ...

  7. windows下的句柄利用

    什么是句柄 维基百科:在程序设计中,句柄(handle)是Windows操作系统用来标识被应用程序所建立或使用的对象的整数.其本质相当于带有引用计数的智能指针.当一个应用程序要引用其他系统(如数据库. ...

  8. mapreducer计算原理

    mapreducer计算原理

  9. idea spring+springmvc+mybatis环境配置整合详解

    idea spring+springmvc+mybatis环境配置整合详解 1.配置整合前所需准备的环境: 1.1:jdk1.8 1.2:idea2017.1.5 1.3:Maven 3.5.2 2. ...

  10. Spring Boot + Vue 跨域请求问题

    使用Spring Boot + Vue 做前后端分离项目搭建,实现登录时,出现跨域请求 Access to XMLHttpRequest at 'http://localhost/open/login ...