用于目标检测的级联分类器类。 更多…
#include <opencv2/objdetect.hpp>
|
| 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::MaskGenerator > | getMaskGenerator () |
|
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) |
|
◆ 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 对象> |
◆ ~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并提供rejectLevels
和levelWeights
参数。对于每个生成的检测,levelWeights
将包含最终阶段分类的确定性。然后,可以使用此值将强分类与较弱分类区分开来。
下面是一个关于如何有效使用它的代码示例
vector<double> weights;
vector<int> levels;
vector<Rect> detections;
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
Size2i Size
定义 types.hpp:370
◆ empty()
bool cv::CascadeClassifier::empty |
( |
| ) |
const |
Python |
---|
| cv.CascadeClassifier.empty( | | ) -> | retval |
◆ getFeatureType()
int cv::CascadeClassifier::getFeatureType |
( |
| ) |
const |
Python |
---|
| cv.CascadeClassifier.getFeatureType( | | ) -> | retval |
◆ 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()
◆ cc
此类的文档是从以下文件生成的