当前位置 : 主页 > 编程语言 > java >

【opencv基础】detectmultiscale函数详解

来源:互联网 收集:自由互联 发布时间:2022-07-22
前言 简单的人脸检测程序可以直接基于opencv的函数库进行实现,本文介绍一下detectMultiScale函数。 函数简介 opencv2人脸检测使用的是detectMultiScale函数,可以检测出图片中的所有人脸,并

前言

简单的人脸检测程序可以直接基于opencv的函数库进行实现,本文介绍一下detectMultiScale函数。

函数简介

opencv2人脸检测使用的是detectMultiScale函数,可以检测出图片中的所有人脸,并将vector类型保存各个人脸的位置和大小,用矩形Rect类表示,该函数由分类器的对象进行调用。

Haar特征分类器

Haar特征分类器就是一个XML文件,是opencv官方训练好的检测器,可以直接调用,存放在opencv的安装目录下。

.\opencv\sources\data\haarcascades

函数详解

不同版本的调用函数可能会有些微差别,可以查看函数的声明等。detectmultiscale函数可以得到每个人脸的得分。具体的声明如下。

virtual void detectMultiScale( const Mat& image,
CV_OUT vector<Rect>& objects,
double scaleFactor=1.1,
int minNeighbors=3, int flags=0,
Size minSize=Size(),
Size maxSize=Size() );

CV_WRAP virtual void detectMultiScale( const Mat& image,
CV_OUT vector<Rect>& objects,
vector<int>& rejectLevels,
vector<double>& levelWeights,
double scaleFactor=1.1,
int minNeighbors=3, int flags=0,
Size minSize=Size(),
Size maxSize=Size(),
bool outputRejectLevels=false

rejectLevels:

levelWeights:

还有一个版本

void cv::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() );

 

参考

1.​​opencv官网​​;

2.​​opencv例程​​;

上一篇:linux平台模拟生成CAN设备
下一篇:没有了
网友评论