zoukankan      html  css  js  c++  java
  • OpenCV——级联分类器(CascadeClassifier)

    级联分类器的计算特征值的基础类FeatureEvaluator

    功能:读操作read、复制clone、获得特征类型getFeatureType,分配图片分配窗口的操作setImage、setWindow,计算有序特征calcOrd,计算绝对特征calcCat,创建分类器特征的结构create函数。

    目标级联矩形的分组函数groupRectangles

    用load函数加载XML分类器文件具体步骤如下:                      {  PS:目前提供的分类器包括Haar分类器和LBP分类器(数据较少)}

        1.加载级联分类器

    CascadeClassifier face_cascade;
    face_cascade.load("haarcascade_frontalface_alt.xml");

        2.读取视频流

        3.对每一帧使用该分类器

    先对图像进行预处理——变成灰度图,并将其直方图均衡化

    若检测人脸,调用detectMultiScale函数,函数详情如下:

    void detectMultiScale(
        const Mat& image,                //待检测灰度图像
        CV_OUT vector<Rect>& objects,    //被检测物体的矩形框向量
        double scaleFactor = 1.1,        //前后两次相继的扫描中搜索窗口的比例系数,默认为1.1 即每次搜索窗口扩大10%
        int minNeighbors = 3,            //构成检测目标的相邻矩形的最小个数 如果组成检测目标的小矩形的个数和小于minneighbors - 1 都会被排除
                                         //如果minneighbors为0 则函数不做任何操作就返回所有被检候选矩形框
        int flags = 0,                   //若设置为CV_HAAR_DO_CANNY_PRUNING 函数将会使用Canny边缘检测来排除边缘过多或过少的区域 
        Size minSize = Size(),              
        Size maxSize = Size()            //最后两个参数用来限制得到的目标区域的范围     
    );

     PS:flags对于新的分类器没有用(但目前的haar分类器都是旧版的,CV_HAAR_DO_CANNY_PRUNING利用Canny边缘检测器来排除一些边缘很少或者很多的图像区域,CV_HAAR_SCALE_IMAGE就是按比例正常检测,CV_HAAR_FIND_BIGGEST_OBJECT只检测最大的物体,CV_HAAR_DO_ROUGH_SEARCH只做初略检测)

    实例代码:

    face_cascade.detectMultiScale( frame_gray, faces, 1.1, 2, 0|CV_HAAR_SCALE_IMAGE, Size(30, 30) );
  • 相关阅读:
    mysql导入导出数据
    Linux符号连接的层数过多
    win10下docker安装和配置镜像仓库
    PHP资源列表(转)
    php中正则案例分析
    基于CSS3自定义美化复选框Checkbox组合
    基于HTML5 Canvas粒子效果文字动画特效
    基于jQuery商品分类选择提交表单代码
    基于jquery右侧悬浮加入购物车代码
    基于jquery带时间轴的图片轮播切换代码
  • 原文地址:https://www.cnblogs.com/farewell-farewell/p/5945412.html
Copyright © 2011-2022 走看看