级联分类器原理(级联器是什么)

级联分类器即为Emgucv中的CascadeClassifier。使用CascadeClassifier来加载一个.xml分类器文件,然后使用DetectMultiScale函数来对图片进行检测。这是DetectMultiScale函数。publicRectangle[]DetectMultiScale(IInputArrayimage,doublescaleFactor=1.

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

级联分类器即为Emgucv中的 CascadeClassifier。使用 CascadeClassifier来加载一个.xml分类器文件,然后使用DetectMultiScale函数来对图片进行检测。
这是DetectMultiScale函数。

public Rectangle[] DetectMultiScale(IInputArray image, double scaleFactor = 1.1, int minNeighbors = 3, Size minSize = default(Size), Size maxSize = default(Size));

第一个参数为待检测的图片,对类型没有要求。
第二个参数为用于缩放的因子。
第三个参数为两个检测到指定物体的最小距离。
第四第五个分别为检测到物体的最小和最大尺寸。

在进行检测时,如果要求检测速度(比如通过摄像头实时检测),那就需要对后面的参数进行修改,要把缩放参数调大点火把最小尺寸调大一点。
代码非常简短

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();     
            CascadeClassifier haar = new CascadeClassifier("haarcascade_frontalface_default.xml");    //初始化分类器
            Image<Bgr, byte> frame= new Image<Bgr, byte>("e9bbb8525c7da64cd78beed8b237c5e4.jpg");
            Rectangle[] faces = haar.DetectMultiScale(frame, 1.3, 3, new System.Drawing.Size(40, 40));       //检测并将数据储存
            foreach (Rectangle face in faces)
            {
                CvInvoke.Rectangle(frame, face, new Bgr(Color.Red).MCvScalar, 2);  //在检测到的区域绘制红框
            }
            imageBox1.Image = frame;
        }
    }

运行效果图:
这里写图片描述

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

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

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


相关推荐

  • selenium-webdriver_web driver

    selenium-webdriver_web driverChrome:https://chromedriver.storage.proxy.ustclug.org/index.html         https://sites.google.com/a/chromium.org/chromedriver/downloads Firefox:https://github.com/mozilla/geckodriver/release…

    2022年9月18日
    2
  • bs是cs的一种吗_cs客户端和bs客户端

    bs是cs的一种吗_cs客户端和bs客户端一,B/S结构是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到二,区别(C/S与B/S):1.硬件环境不同:C/S一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门2.对安全要求不同:C/S一般面向相对固定的用户群,对信息安全的控制能力很强。一般高度机密的信息系统采用C/S结构适宜。可以通过B/S发布…

    2022年10月17日
    2
  • C++ vector初始化_vector>初始化

    C++ vector初始化_vector>初始化#include<iostream>#include<string>#include<vector>#include<deque>#include<list>#include<forward_list>#include<string>#include<array>usingnamespacestd;#defineLENGTH10typedefintTYPE;.

    2022年9月13日
    3
  • 国内NFT平台及玩法一览[通俗易懂]

    国内NFT平台及玩法一览[通俗易懂]2021年被称为NFT的“元年”,互联网巨头、各大企业、艺术家、明星纷纷入局NFT,屡创新高的NFT价格更是让其成为大众关注焦点。此推出NFT系列专题研究,盘点和总结NFT的发行市场、平台背景、投融资状况、市场热点、政策监管等相关内容,帮助读者对NFT市场有更全面地了解。随着国外NFT风潮的火热,国内风潮总算是姗姗来迟,入局NFT的选手也是越来越多。NFT发行平台是为NFT提供发行、交易等服务的平台,根据平台的所在地,NFT发行平台能够被分为国内和国外两个市场。本文主要对于国内NFT发行平台.

    2022年5月14日
    102
  • Java-重载与重写的区别[通俗易懂]

    Java-重载与重写的区别[通俗易懂]重写(Override)规则:当子继承父类的方法时,此方法不适用于子的程序执行,需要进行重写。参数列表必须完全与被重写方法相同返回类型必须与被重写方法的返回类型相同子类重写的方法访问权限不能小于被重写的方法。父类的成员方法只能被它的子类重写声明为static和private的方法不能被重写,但是能够被再次声明重写(Override)和重载(Overload)的区别参数列表重写:参数列表必须与被重写的方法相同。重载:参数列表必须不同发生的位置重写:发生在子类中重载:发生在一个类

    2022年7月7日
    24
  • RSA加密算法详细解说[通俗易懂]

    RSA加密算法详细解说[通俗易懂]RSA加密算法是一种非对称加密算法,于1977年由罗纳德·李维斯特(RonRivest)阿迪·萨莫尔(AdiShamir)伦纳德·阿德曼(LeonardAdleman)一起提出的。RSA的优势:对极大整数做因数分解的难度决定了RSA算法的可靠性,对一极大整数做因数分解愈困难,RSA算法愈可靠加密由公钥,私钥,明文,密文,四部分组成。质数与互质数一个大于1的自然数,除了1和它本身…

    2022年6月14日
    43

发表回复

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

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