用于对象检测的级联分类器类。 更多...
#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 object> |
| cv.CascadeClassifier( | filename | ) -> | <CascadeClassifier object> |
◆ CascadeClassifier() [2/2]
| cv::CascadeClassifier::CascadeClassifier |
( |
const String & | filename | ) |
|
| Python |
|---|
| cv.CascadeClassifier( | | ) -> | <CascadeClassifier object> |
| cv.CascadeClassifier( | filename | ) -> | <CascadeClassifier object> |
◆ ~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;
用于对象检测的 Cascade 分类器类。
定义 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
此类的文档是从以下文件生成的