EmguCv模板匹配
模板匹配是一种最原始、最基本的模式识别方法,研究某一特定对象物的图案位于图像的什么地方,进而识别对象物,这就是一个匹配问题。它是图像处理中最基本、最常用的匹配方法。模板匹配具有自身的局限性,主要表现在它只能进行平行移动,若原图像中的匹配目标发生旋转或大小变化,该算法无效。
先贴上简陋的界面图
代码:
Mat src = new Image<Bgr, byte>(ib_original.Image.Bitmap).Mat;Mat temp = new Mat("模板.jpg", Emgu.CV.CvEnum.LoadImageType.AnyColor);//匹配的模板//创建mat 存储输出匹配结果。Mat result = new Mat(new Size(src.Width - temp.Width + 1, src.Height - temp.Height + 1),Emgu.CV.CvEnum.DepthType.Cv32F, 1);#region 模板匹配参数说明//采用系数匹配法,匹配值越大越接近准确图像。//IInputArray image:输入待搜索的图像。图像类型为8位或32位浮点类型。设图像的大小为[W, H]。//IInputArray templ:输入模板图像,类型与待搜索图像类型一致,并且大小不能大于待搜索图像。设图像大小为[w, h]。//IOutputArray result:输出匹配的结果,单通道,32位浮点类型且大小为[W - w + 1, H - h + 1]。//TemplateMatchingType method:枚举类型标识符,表示匹配算法类型。//Sqdiff = 0 平方差匹配,最好的匹配为 0。//SqdiffNormed = 1 归一化平方差匹配,最好效果为 0。//Ccorr = 2 相关匹配法,数值越大效果越好。//CcorrNormed = 3 归一化相关匹配法,数值越大效果越好。//Ccoeff = 4 系数匹配法,数值越大效果越好。//CcoeffNormed = 5 归一化系数匹配法,数值越大效果越好。#endregionCvInvoke.MatchTemplate(src, temp, result, Emgu.CV.CvEnum.TemplateMatchingType.Ccoeff);#region 归一化函数参数说明//IInputArray src:输入数据。//IOutputArray dst:进行归一化后输出数据。//double alpha = 1; 归一化后的最大值,默认为 1。//double beta = 0:归一化后的最小值,默认为 0。#endregionCvInvoke.Normalize(result, result, 255, 0, Emgu.CV.CvEnum.NormType.MinMax);double max = 0, min = 0;//创建double的极值。Point max_point = new Point(0, 0), min_point = new Point(0, 0);#region 极值函数参数说明//IInputArray arr:输入数组。//ref double minVal:输出数组中的最小值。//ref double maxVal; 输出数组中的最大值。//ref Point minLoc:输出最小值的坐标。//ref Point maxLoc; 输出最大值的坐标。//IInputArray mask = null:蒙版。#endregionCvInvoke.MinMaxLoc(result, ref min, ref max, ref min_point, ref max_point);CvInvoke.Rectangle(src, new Rectangle(max_point, temp.Size), new MCvScalar(0, 0, 255), 3);//绘制矩形,匹配得到的效果。tb_result.Text = "min=" + min + ",max=" + max;tb_result.Text += Environment.NewLine;tb_result.Text += "最大值坐标:"+ max_point.ToString();tb_result.Text += Environment.NewLine;tb_result.Text += "最小值坐标:" + min_point.ToString();ib_original.Image = src;
EmguCv模板匹配相关推荐
- 模板匹配(Match Template)
前言 模板匹配是在图像中寻找目标的方法之一.Come On, Boy.我们一起来看看模板匹配到底是怎么回事. 模板匹配的工作方式 模板匹配的工作方式跟直方图的反向投影基本一样,大致过程是 ...
- OpenCV中的模板匹配/Filter2d
1.模板匹配 模板匹配是在图像中寻找目标的方法之一.Come On, Boy.我们一起来看看模板匹配到底是怎么回事. 参考链接:http://www.opencv.org.cn/opencvdoc/2 ...
- C# 图像模板匹配并标注
01 - 需求 这个是粉丝在我的技术群提的一个需求 1. 模板匹配 : 功能: (1)在一张大图像中,选取一小块区域作为模板 (2)可在大图像中匹配到模板图像和位置. 模板匹配是图像处理中最基本.最常 ...
- 《OpenCV3编程入门》学习笔记9 直方图与匹配(五)模板匹配
9.5 模板匹配 基本思想: 在一幅图像中寻找与另一幅模板图像最匹配的部分,通过在输入图像上滑动图像块,对实际的图像块和输入图像进行匹配. 9.5.1 模板匹配:matchTemplate()函数 ...
- OpenCV+python:模板匹配
1,模板匹配的概念及原理 模板匹配是一项在一幅图像中寻找与另一幅模板图像最匹配(相似)部分的技术. 我们需要2幅图像: 模板 (T): 将和原图像比照的图像块 原图像 (I): 在这幅图像里,我们希望 ...
- OpenCV(项目)车牌识别3 -- 模板匹配
目录 一.基础理论 1.思想 2.大致过程 二.详细过程 1.首先需要模板库 2.得到模板 3.原图限定大小 4.模板匹配 5.匹配所有子文件夹,保存最佳得分(最匹配项) 三.大致过程(细分类,节省时 ...
- OpenCV(二十)模板匹配
目录 一.基础理论 1.作用与过程 2.原理 3.函数matchTemplate 二.代码 三.效果 参考资料 一.基础理论 1.作用与过程 所谓的模板匹配,就是在给定的图片中查找和模板最相似的区域, ...
- 人眼模板匹配自动跟踪
void trackEye(cv::Mat& im, cv::Mat& tpl, cv::Rect& rect) {// 人眼位置cv::Size pSize(rect.wid ...
- OpenCV中使用模板匹配识别空闲的货架空间
但是点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 假设你是一名在超市工作的员工,被要求在商店里四处走动,检查需要 ...
最新文章
- Python基础教程:字典和Json
- 岗位内推 | 字节跳动招聘NLP、计算机视觉、推荐算法实习生
- django html 模板继承,Django模板的继承
- arm架构安装rxtx_Parallels推新版本 M1芯片Mac能安装Win 10
- asp.net core监控—引入Prometheus(四)
- 支持断线重连、永久watcher、递归操作并且能跨平台(.NET Core)的ZooKeeper异步客户端
- 【python】numpy库linspace相同间隔采样 详解
- TOPSIS与模糊Borda 的组合应用(以第二届大湾区杯和国赛为案例)
- AcWing 204. 表达整数的奇怪方式 / Strange Way To Express Integers
- 一个很简单的问题:遍历int数组并删掉所有偶数
- 【MYSQL笔记】复制删除和表和记录
- Java入门——第九天
- 2021年计算机网络工程师真题,2021年计算机四级网络工程师题库完整版完整答案.doc...
- KHV0031-himall3.0商城异常类(二)
- 马哥2018linux课程目录,马哥教育2018年Linux第30期视频教程
- 数据库中什么是候选码,主码,主属性和非主属性
- AndroidQ(八)Android Q隐私:更改相机和连接
- 一个java程序员看待互联网行业与物联网行业的区别
- C#调节windows音量
- 读书感受 之 《冰与火之歌》
热门文章
- 涉密计算机的等级分为,涉密人员的涉密等级分为 - 作业在线问答
- 此计算机上未安装sql2000,MDAC及SQL SERVER 2000安装失败的原因及解决方法
- 对ROS功能包中package.xml文件的疑问
- 上海移动通信企业短信通平台接口协议
- 交叉验证(CrossValidation)方法思想简介
- java实现约瑟夫环完整算法_Java简单实现约瑟夫环算法示例
- 解决Windows Server 2012 R2 无法安装VMware Tool
- 系统补丁不适用计算机,Windows Server2012 R2 Standard更新系统补丁时提示“此更新不适用于此计算机”...
- mpg123源码详解
- 尤雨溪和Vue的那些事