用於物件檢測的級聯分類器類。 更多...
#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
此類的文件是從以下檔案生成的