使用OpenCV&&C++进行模板匹配

一:课程介绍

1.1:学习目标

  学会用imread载入图像,和imshow输出图像。

  用nameWindow创建窗口,用createTrackbar加入滚动条和其回调函数的写法。

  熟悉OpenCV函数matchTemplate并学会通过该函数实现模板匹配。

1.2:什么是模板匹配?

  在一副图像中寻找和另一幅图像最相似(匹配)部分的技术。

二:实验原理

  让模板图片在原图片上的一次次滑动(从左到右,从上到下一个像素为单位的移动),然后将两张图片的像素值进行比对,然后选择相似度最高的部分进行标记,当遇到相似度更高的部分时更换标记部分。扫描完毕之后,将相似度最高的部分标记出来,作为图片进行输出操作。

三:环境搭建

$ cd ~
$ sudo apt-get update
$ wget http://labfile.oss.aliyuncs.com/courses/671/opencv.sh
$ sudo chmod 777 opencv.sh
$ ./opencv.sh

在执行完之后执行如下语句,检查是否安装成功

./facedetect --cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --scale=1.5 lena.jpg
时间: 2024-10-22 02:26:58

使用OpenCV&&C++进行模板匹配的相关文章

OpenCV中的模板匹配方法及其应用

模板匹配(TemplateMatching)就是在一幅图像中寻找和模板图像(template)最相似的区域,该方法原理简单计算速度快,能够应用于目标识别,目标跟踪等多个领域.OpenCV中对应的函数为matchTemplate或cvMatchTemplate(参考opencvdoc),简单介绍下: 1.函数原型 C++: void matchTemplate(InputArray image, InputArray templ, OutputArray result, int method);

Python+OpenCV图像处理之模板匹配

模板匹配就是在整个图像区域中发现与给定子图像匹配的小块区域 在OpenCV中,提供了相应的函数完成这个操作: matchTemplate 函数:在模板和输入图像之间寻找匹配,获得匹配结果图像 minMaxLoc 函数:在给定的矩阵中寻找最大和最小值,并给出它们的位置 几种常见的模板匹配算法: ①TM_SQDIFF是平方差匹配:TM_SQDIFF_NORMED是标准平方差匹配.利用平方差来进行匹配,最好匹配为0.匹配越差,匹配值越大. ②TM_CCORR是相关性匹配:TM_CCORR_NORMED

基于opencv的视频流 模板匹配 (灰度化 二值化 )

#include <cv.h> #include <highgui.h> #include <windows.h> // 获取直方图 // 1. pImageData 图像数据 // 2. nWidth 图像宽度 // 3. nHeight 图像高度 // 4. nWidthStep 图像行大小 // 5. pHistogram 直方图 BOOL GetHistogram(unsigned char *pImageData, int nWidth, int nHeigh

Opencv for android 模板匹配

因为有这方面的需要所以,对模板查找搜寻了相关资料,只是对于算法的东西很难看得动,特别是opencv涉及的很多的数学方法. 所以只为了实现这个功能,因为需求比较简单,在网上也搜寻到了相关代码,就直接拿来用了,这里也相当于转载一下: 代码上,亲测可以用的,效果也不错,确实将嘴巴给找出来了. 原文:http://www.itstrike.cn/Question/645ffff0-2862-46b6-a421-b76a37dfc660.html class MatchingDemo { public v

使用Python+OpenCV进行图像模板匹配(Match Template)

http://bluewhale.cc/2017-09-22/use-python-opencv-for-image-template-matching-match-template.html 原文地址:https://www.cnblogs.com/eustoma/p/9403582.html

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

一.模板匹配概念 二.单模板匹配 1 #include "opencv2/opencv.hpp" 2 #include <iostream> 3 using namespace std; 4 using namespace cv; 5 6 void main() 7 { 8 Mat temp=imread("E://mu.jpg"); 9 Mat src=imread("E://lena.jpg"); 10 Mat dst=src.c

OpenCV 学习笔记(模板匹配)

OpenCV 学习笔记(模板匹配) 模板匹配是在一幅图像中寻找一个特定目标的方法之一.这种方法的原理非常简单,遍历图像中的每一个可能的位置,比较各处与模板是否"相似",当相似度足够高时,就认为找到了我们的目标. 在 OpenCV 中,提供了相应的函数完成这个操作. matchTemplate 函数:在模板和输入图像之间寻找匹配,获得匹配结果图像 minMaxLoc 函数:在给定的矩阵中寻找最大和最小值,并给出它们的位置 在具体介绍这两个函数之前呢,我们还要介绍一个概念,就是如何来评价两

opencv笔记(二十二)——模板匹配 template matching

模板匹配就是在给定一幅图像和一幅模板(一般模板比图像的尺寸小很多)的情况下,找到这个图像中最最相似于模板的位置,比如 第一幅是给定的图片,第二幅是模板,第三幅就是搜索到的匹配的位置. 这个搜索的过程,我没有在源码中求索,但是根据tutorial,应该是采用sliding window的方法,利用滑动的窗口,逐像素进行匹配.这个逐像素的意思,就是锚定某个像素之后,在这个像素的右边和下方,以template的宽度和高度的距离的范围内,进行模板与图像的相似度计算. 这种方法和行人检测中常用的方法类似.

OpenCV探索之路(九):模板匹配

模板匹配的作用在图像识别领域作用可大了.那什么是模板匹配? 模板匹配,就是在一幅图像中寻找另一幅模板图像最匹配(也就是最相似)的部分的技术. 说的有点抽象,下面给个例子说明就很明白了. 在上面这幅全明星照中,我们想找出姚明头像的位置,并把它标记出来,可以做到吗? 可以,这就是模板匹配的要做的事情. 其实模板匹配实现的思想也是很简单很暴力的,就是拿着模板图片(姚明头像)在原图(全明星照)中从左上至右下依次滑动,直到遇到某个区域的相似度低于我们设定的阈值,那么我们就认为该区域与模板匹配了,也就是我们