OpenCV 4.11.0
开源计算机视觉库
加载中…
搜索中…
无匹配项
cv::CascadeClassifier 类参考

用于目标检测的级联分类器类。 更多…

#include <opencv2/objdetect.hpp>

cv::CascadeClassifier 的协作图

公有成员函数

 CascadeClassifier ()
 
 CascadeClassifier (const String &filename)
 从文件中加载分类器。
 
 ~CascadeClassifier ()
 
void detectMultiScale (InputArray image, std::vector< Rect > &objects, double scaleFactor=1.1, int minNeighbors=3, int flags=0, Size minSize=Size(), Size maxSize=Size())
 检测输入图像中不同大小的目标。检测到的目标作为矩形列表返回。
 
void 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())
 
void detectMultiScale (InputArray image, std::vector< Rect > &objects, std::vector< int > &rejectLevels, std::vector< double > &levelWeights, double scaleFactor=1.1, int minNeighbors=3, int flags=0, Size minSize=Size(), Size maxSize=Size(), bool outputRejectLevels=false)
 
bool empty () const
 检查分类器是否已加载。
 
int getFeatureType () const
 
Ptr< BaseCascadeClassifier::MaskGeneratorgetMaskGenerator ()
 
void * getOldCascade ()
 
Size getOriginalWindowSize () const
 
bool isOldFormatCascade () const
 
bool load (const String &filename)
 从文件中加载分类器。
 
bool read (const FileNode &node)
 FileStorage 节点读取分类器。
 
void setMaskGenerator (const Ptr< BaseCascadeClassifier::MaskGenerator > &maskGenerator)
 

静态公有成员函数

static bool convert (const String &oldcascade, const String &newcascade)
 

公有属性

Ptr< BaseCascadeClassifiercc
 

详细描述

用于目标检测的级联分类器类。

示例
samples/cpp/facedetect.cpp.

构造函数和析构函数文档

◆ CascadeClassifier() [1/2]

cv::CascadeClassifier::CascadeClassifier ( )
Python
cv.CascadeClassifier() -> <CascadeClassifier 对象>
cv.CascadeClassifier(filename) -> <CascadeClassifier 对象>

◆ CascadeClassifier() [2/2]

cv::CascadeClassifier::CascadeClassifier ( const String & filename)
Python
cv.CascadeClassifier() -> <CascadeClassifier 对象>
cv.CascadeClassifier(filename) -> <CascadeClassifier 对象>

从文件中加载分类器。

参数
filename加载分类器的文件名。

◆ ~CascadeClassifier()

cv::CascadeClassifier::~CascadeClassifier ( )

成员函数文档

◆ convert()

static bool cv::CascadeClassifier::convert ( const String & oldcascade,
const String & newcascade )
static
Python
cv.CascadeClassifier.convert(oldcascade, newcascade) -> retval
cv.CascadeClassifier_convert(oldcascade, newcascade) -> retval

◆ detectMultiScale() [1/3]

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() )
Python
cv.CascadeClassifier.detectMultiScale(image[, scaleFactor[, minNeighbors[, flags[, minSize[, maxSize]]]]]) -> objects
cv.CascadeClassifier.detectMultiScale2(image[, scaleFactor[, minNeighbors[, flags[, minSize[, maxSize]]]]]) -> objects, numDetections
cv.CascadeClassifier.detectMultiScale3(image[, scaleFactor[, minNeighbors[, flags[, minSize[, maxSize[, outputRejectLevels]]]]]]) -> objects, rejectLevels, levelWeights

检测输入图像中不同大小的目标。检测到的目标作为矩形列表返回。

参数
image类型为 CV_8U 的矩阵,包含检测到目标的图像。
objects矩形向量,每个矩形包含检测到的目标,矩形可能部分位于原始图像之外。
scaleFactor指定每次图像缩放时图像大小缩减多少的参数。
minNeighbors指定每个候选矩形应有多少个邻居才能保留它的参数。
flags对于旧级联,此参数与函数 cvHaarDetectObjects 中的含义相同。对于新级联,它不用于。
minSize最小可能的目标大小。小于此大小的目标将被忽略。
maxSize最大可能的目标大小。大于此大小的目标将被忽略。如果 maxSize == minSize,则模型将在单一尺度上进行评估。
示例
samples/cpp/facedetect.cpp.

◆ detectMultiScale() [2/3]

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() )
Python
cv.CascadeClassifier.detectMultiScale(image[, scaleFactor[, minNeighbors[, flags[, minSize[, maxSize]]]]]) -> objects
cv.CascadeClassifier.detectMultiScale2(image[, scaleFactor[, minNeighbors[, flags[, minSize[, maxSize]]]]]) -> objects, numDetections
cv.CascadeClassifier.detectMultiScale3(image[, scaleFactor[, minNeighbors[, flags[, minSize[, maxSize[, outputRejectLevels]]]]]]) -> objects, rejectLevels, levelWeights

这是一个重载的成员函数,为了方便提供。它与上述函数的区别仅在于它接受的参数。

参数
image类型为 CV_8U 的矩阵,包含检测到目标的图像。
objects矩形向量,每个矩形包含检测到的目标,矩形可能部分位于原始图像之外。
numDetections对应目标的检测数量向量。目标的检测数量是组合在一起形成目标的相邻正分类矩形的数量。
scaleFactor指定每次图像缩放时图像大小缩减多少的参数。
minNeighbors指定每个候选矩形应有多少个邻居才能保留它的参数。
flags对于旧级联,此参数与函数 cvHaarDetectObjects 中的含义相同。对于新级联,它不用于。
minSize最小可能的目标大小。小于此大小的目标将被忽略。
maxSize最大可能的目标大小。大于此大小的目标将被忽略。如果 maxSize == minSize,则模型将在单一尺度上进行评估。

◆ detectMultiScale() [3/3]

void cv::CascadeClassifier::detectMultiScale ( InputArray image,
std::vector< Rect > & objects,
std::vector< int > & rejectLevels,
std::vector< double > & levelWeights,
double scaleFactor = 1.1,
int minNeighbors = 3,
int flags = 0,
Size minSize = Size(),
Size maxSize = Size(),
bool outputRejectLevels = false )
Python
cv.CascadeClassifier.detectMultiScale(image[, scaleFactor[, minNeighbors[, flags[, minSize[, maxSize]]]]]) -> objects
cv.CascadeClassifier.detectMultiScale2(image[, scaleFactor[, minNeighbors[, flags[, minSize[, maxSize]]]]]) -> objects, numDetections
cv.CascadeClassifier.detectMultiScale3(image[, scaleFactor[, minNeighbors[, flags[, minSize[, maxSize[, outputRejectLevels]]]]]]) -> objects, rejectLevels, levelWeights

这是一个重载的成员函数,为了方便提供。它与上述函数的区别仅在于它接受的参数。此函数允许您检索最终阶段分类决策的确定性。为此,需要将outputRejectLevels设置为true并提供rejectLevelslevelWeights参数。对于每个生成的检测,levelWeights将包含最终阶段分类的确定性。然后,可以使用此值将强分类与较弱分类区分开来。

下面是一个关于如何有效使用它的代码示例

Mat img;
vector<double> weights;
vector<int> levels;
vector<Rect> detections;
CascadeClassifier model("/path/to/your/model.xml");
model.detectMultiScale(img, detections, levels, weights, 1.1, 3, 0, Size(), Size(), true);
cerr << "Detection " << detections[0] << " with weight " << weights[0] << endl;
用于目标检测的级联分类器类。
定义 objdetect.hpp:258
n维密集数组类
定义 mat.hpp:829
Size2i Size
定义 types.hpp:370

◆ empty()

bool cv::CascadeClassifier::empty ( ) const
Python
cv.CascadeClassifier.empty() -> retval

检查分类器是否已加载。

示例
samples/cpp/facedetect.cpp.

◆ getFeatureType()

int cv::CascadeClassifier::getFeatureType ( ) const
Python
cv.CascadeClassifier.getFeatureType() -> retval

◆ getMaskGenerator()

Ptr< BaseCascadeClassifier::MaskGenerator > cv::CascadeClassifier::getMaskGenerator ( )

◆ getOldCascade()

void * cv::CascadeClassifier::getOldCascade ( )

◆ getOriginalWindowSize()

Size cv::CascadeClassifier::getOriginalWindowSize ( ) const
Python
cv.CascadeClassifier.getOriginalWindowSize() -> retval

◆ isOldFormatCascade()

bool cv::CascadeClassifier::isOldFormatCascade ( ) const
Python
cv.CascadeClassifier.isOldFormatCascade() -> retval

◆ load()

bool cv::CascadeClassifier::load ( const String & filename)
Python
cv.CascadeClassifier.load(filename) -> retval

从文件中加载分类器。

参数
filename加载分类器的文件名称。该文件可能包含由 haartraining 应用程序训练的旧 HAAR 分类器或由 traincascade 应用程序训练的新级联分类器。
示例
samples/cpp/facedetect.cpp.

◆ read()

bool cv::CascadeClassifier::read ( const FileNode & node)
Python
cv.CascadeClassifier.read(node) -> retval

FileStorage 节点读取分类器。

注意
该文件可能只包含新的级联分类器(由 traincascade 应用程序训练)。

◆ setMaskGenerator()

void cv::CascadeClassifier::setMaskGenerator ( const Ptr< BaseCascadeClassifier::MaskGenerator > & maskGenerator)

成员数据文档

◆ cc

Ptr<BaseCascadeClassifier> cv::CascadeClassifier::cc

此类的文档是从以下文件生成的