基于Haar特征的cascade分类器(classifiers) 是Paul Viola和 Michael Jone在2001年,论文”Rapid Object Detection using a Boosted Cascade of Simple Features”中提出的一种有效的物品检测(object detect)方法。它是一种机器学习方法,通过许多正负样例中训练得到cascade方程,然后将其应用于其他图片。
Haar特征分类器就是一个XML文件,该文件中会描述人体各个部位的Haar特征值。
OpenCV自带一些已经训练好的分类器,比如人脸、眼睛、微笑等。这些文件储存在如下路径中:
opencv/data/haarcascades/
如果想要自己训练分类器,来识别任意物品,可以参照:
Cascade Classifier Training
void cv::CascadeClassifier::detectMultiScale
(InputArray image,std::vector< Rect > & objects,double scaleFactor = 1.1,int minNeighbors = 3,int flags = 0,Size minSize = Size(),Size maxSize = Size()
)
| image | 输入图像(CV_8U) |
| objects | 输出结果(包含人脸位置的矩形集合) |
| scaleFactor | 每次图像缩小的比例(默认1.1) |
| minNeighbors | 成功匹配所需要的矩形框的数量(默认为3) |
| flags | 默认为0 ● CASCADE_DO_CANNY_PRUNING=1 利用canny边缘检测来排除一些边缘很少或者很多的图像区域 |
| minSize | 最小对象尺寸(小于该值的对象将被忽略) |
| maxSize | 最大对象尺寸(大于该值的对象将被忽略) |
#include "widget.h"
#include "ui_widget.h"#include
#include
#include
#include using namespace cv;
using namespace std;Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//创建级联分类器CascadeClassifier cascade;//载入Haar特征分类器cascade.load("C:/opencv/date/haarcascade_frontalface_alt2.xml");//创建矩阵Mat src,dst_gray;//载入图像src = imread("c:/opencv/zhou.jpg");//生成灰度图cvtColor(src, dst_gray, COLOR_BGR2GRAY);//创建矩形容器vector rects;//识别人脸cascade.detectMultiScale(dst_gray,rects,1.1,3,0);//绘制矩形框Scalar color(0,255,0);for(uint i=0;i

opencv人脸检测_Haar特征分类器实现人脸检测_cascade.detectMultiScale参数详解
使用Haar Cascade 进行人脸识别
上一篇:搅扰是什么意思
下一篇:生成者(建造者)模式