赞
踩
前言
简单的人脸检测程序可以直接基于opencv的函数库进行实现,本文介绍一下detectMultiScale函数。
函数简介
opencv2人脸检测使用的是detectMultiScale函数,可以检测出图片中的所有人脸,并将vector类型保存各个人脸的位置和大小,用矩形Rect类表示,该函数由分类器的对象进行调用。
Haar特征分类器
Haar特征分类器就是一个XML文件,是opencv官方训练好的检测器,可以直接调用,存放在opencv的安装目录下。
.\opencv\sources\data\haarcascades
函数详解
不同版本的调用函数可能会有些微差别,可以查看函数的声明等。detectmultiscale函数可以得到每个人脸的得分。具体的声明如下。
CV_WRAP virtual void detectMultiScale( const Mat&image,
CV_OUT vector&objects,double scaleFactor=1.1,int minNeighbors=3, int flags=0,
Size minSize=Size(),
Size maxSize=Size() );
CV_WRAPvirtual void detectMultiScale( const Mat&image,
CV_OUT vector&objects,
vector&rejectLevels,
vector&levelWeights,double scaleFactor=1.1,int minNeighbors=3, int flags=0,
Size minSize=Size(),
Size maxSize=Size(),bool outputRejectLevels=false );
rejectLevels:
levelWeights:
还有一个版本
voidcv::CascadeClassifier::detectMultiScale( InputArray image,
std::vector< Rect > &objects,
std::vector< int > &numDetections,double scaleFactor = 1.1,int minNeighbors = 3,int flags = 0,
Size minSize=Size(),
Size maxSize=Size() );
参考
完
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。