用于目标检测的级联分类器类。 更多...
#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
此类的文档从以下文件生成