OpenCV 4.12.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
 

詳細描述

用於物件檢測的 Cascade 分類器類。

示例
samples/cpp/facedetect.cpp.

建構函式 & 解構函式文件

◆ 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>

從檔案中載入分類器。

引數
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;
用於物件檢測的 Cascade 分類器類。
定義 objdetect.hpp:258
n 維密集陣列類
定義 mat.hpp:830
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

此類的文件是從以下檔案生成的