OpenCV  4.10.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:812
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

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