EmguCv模板匹配[通俗易懂]

模板匹配是一种最原始、最基本的模式识别方法,研究某一特定对象物的图案位于图像的什么地方,进而识别对象物,这就是一个匹配问题。它是图像处理中最基本、最常用的匹配方法。模板匹配具有自身的局限性,主要表现在它只能进行平行移动,若原图像中的匹配目标发生旋转或大小变化,该算法无效。先贴上简陋的界面图  代码:Matsrc=newImage<Bgr,byte>(ib_o…

大家好,又见面了,我是你们的朋友全栈君。

模板匹配是一种最原始、最基本的模式识别方法,研究某一特定对象物的图案位于图像的什么地方,进而识别对象物,这就是一个匹配问题。它是图像处理中最基本、最常用的匹配方法。模板匹配具有自身的局限性,主要表现在它只能进行平行移动,若原图像中的匹配目标发生旋转或大小变化,该算法无效。

先贴上简陋的界面图 

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 归一化系数匹配法,数值越大效果越好。
            #endregion
            CvInvoke.MatchTemplate(src, temp, result, Emgu.CV.CvEnum.TemplateMatchingType.Ccoeff);

            #region 归一化函数参数说明
            //IInputArray src:输入数据。
            //IOutputArray dst:进行归一化后输出数据。
            //double alpha = 1; 归一化后的最大值,默认为 1。
            //double beta = 0:归一化后的最小值,默认为 0。
            #endregion
            CvInvoke.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:蒙版。
            #endregion
            CvInvoke.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;

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/126823.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 手把手教您组装一台家用NAS J3455黑群晖6.1.7搭建全过程[通俗易懂]

    手把手教您组装一台家用NAS J3455黑群晖6.1.7搭建全过程[通俗易懂]不到千元!手把手教您组装一台家用NASJ3455黑群晖6.1.7搭建全过程其实,市面上那么多NAS,特别是黑群晖,到底哪一台,哪一种配置最适合家用呢?经过俺几个月的观察和尝试,最终锁定了目标:J

    2022年8月3日
    17
  • android一键换机功能实现,不同品牌手机一键换机教程「建议收藏」

    android一键换机功能实现,不同品牌手机一键换机教程「建议收藏」我们正处于一个数码产品更新换代非常快速的时代,很多消费者会紧跟时代潮流,经常更换新手机,但是更换手机之后我们通常需要将旧手机里的数据进行转移,不同品牌之间的手机怎么进行一键换机呢?以安卓手机更换苹果手机转移数据为例:1、首先我们需要在安卓手机上安装“转移到iOS”APP,通过该应用我们可以将安卓手机的数据转移到新的苹果手机上2、确保安卓设备处于WiFi状态3、将安卓设备以及苹果设备连接电源4、设置…

    2022年5月9日
    239
  • idea如何创建yml文件

    idea如何创建yml文件1 File gt Settings2 Editor gt FileAndCodeT gt 中间选中 Files gt 点击 号 添加模板 gt 输入模板名字 Name YmlFile xml name 可以自定义 gt 后缀名 extension yml3 选中文件夹 gt New amp

    2025年6月13日
    4
  • navicat premiun15激活码【最新永久激活】2022.02.25

    (navicat premiun15激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年4月1日
    731
  • 机器学习 之 Haar特征

    机器学习 之 Haar特征Haar特征Haar特征原理综述Haar特征是一种反映图像的灰度变化的,像素分模块求差值的一种特征。它分为三类:边缘特征、线性特征、中心特征和对角线特征。用黑白两种矩形框组合成特征模板,在特征模板内用黑色矩形像素和减去白色矩形像素和来表示这个模版的特征值。例如:脸部的一些特征能由矩形模块差值特征简单的描述,如:眼睛要比脸颊颜色要深,鼻梁两侧比鼻梁颜色要深,嘴巴比周围颜色要深等。但矩形特征只对一

    2022年6月16日
    41
  • xps 转 pdf android版,OakDoc XPS to PDF Converter(XPS文件转PDF格式工具)V2.2 正式版

    xps 转 pdf android版,OakDoc XPS to PDF Converter(XPS文件转PDF格式工具)V2.2 正式版OakDocXPStoPDFConverter(XPS文件转PDF格式工具)是一款很优秀好用的XPS转PDF的辅助工具。如果你需要一款好用的文件转换工具,小编带来的这款OakDocXPStoPDFConverter软件是很不错的选择,功能强大全面,使用后可以帮助用户轻松将XPS文件转换成PDF格式。软件可帮助用户通过简单的方式将XPS文件转换输出为PDF为主的主流图片格式。该工具的…

    2022年5月4日
    54

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号