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中使用模板匹配识别空闲的货架空间
但是点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 假设你是一名在超市工作的员工,被要求在商店里四处走动,检查需要 ...
最新文章
- 分布式锁用 Redis 还是 Zookeeper?
- 一个二维码能装10T电影?看样子我也能改变世界了
- 【Python】条件及循环语句
- Java基础(三十四)String、StringBuffer类和数据缓冲区Buffer类
- EXE和SYS通信IOCTL方式
- 飞机游戏项目完整代码(详解JAVA300集)
- android 之日期选择器,Android GUI 之日期选择器(DatePicker)
- java reactor例子_ProjectReactor响应式编程入门例子
- Ghost for linux 工具备份还原系统
- python selenium无头浏览器
- unity3D原生声音系统
- 【金三银四】Java基础知识面试题(2021最新版)
- 阿里P9专家右军:以终为始的架构设计
- FreeSWITCH的传真发送
- 杭电AI学霸班:考研上岸3清北8浙大,还没毕业年薪拿百万
- Layer.js实现表格溢出内容省略号显示,悬停显示全部
- OpenCV“迷雾”车道识别的反思
- 分号的html文本,在Vue中利用v-HTML按分号将文本换行的例子_輕微_前端开发者
- c位边上还有什么位_λ(c位旁边二个位置叫什么)
- zTree的使用教程
热门文章
- 电脑有什么专业的录音软件
- ipad wifi信号测试软件,总有适合你 iPad六种无线上网方式汇总
- 使用软路由实现智能Qos(海蜘蛛)
- 【技术分享】 ​IE浏览器漏洞利用技术的演变 ( 二 )
- 中国联通网上4G商城营业厅VIP客户俱乐部简介
- ie6、ie7dom 元素重新渲染
- office提示“office未获得合适的许可,你可能是盗版软件的受害者。”解决方法
- 一代信仰落幕,凯迪拉克CTS-V已经停产
- 间接发现app开发里面的猫腻
- 计算机毕业设计 SSM网上外卖订餐系统 外卖配送管理系统 外卖快餐配送系统Java