OpenCV453
公開メンバ関数 | 静的公開メンバ関数 | 公開変数類 | 全メンバ一覧
cv::CascadeClassifier クラス

Cascade classifier class for object detection. [詳解]

#include <objdetect.hpp>

公開メンバ関数

CV_WRAP CascadeClassifier (const String &filename)
 Loads a classifier from a file. [詳解]
 
CV_WRAP bool empty () const
 Checks whether the classifier has been loaded.
 
CV_WRAP bool load (const String &filename)
 Loads a classifier from a file. [詳解]
 
CV_WRAP bool read (const FileNode &node)
 Reads a classifier from a FileStorage node. [詳解]
 
CV_WRAP void detectMultiScale (InputArray image, CV_OUT std::vector< Rect > &objects, double scaleFactor=1.1, int minNeighbors=3, int flags=0, Size minSize=Size(), Size maxSize=Size())
 Detects objects of different sizes in the input image. The detected objects are returned as a list of rectangles. [詳解]
 
 CV_WRAP_AS (detectMultiScale2) void detectMultiScale(InputArray image
 
 CV_WRAP_AS (detectMultiScale3) void detectMultiScale(InputArray image
 
CV_WRAP bool isOldFormatCascade () const
 
CV_WRAP Size getOriginalWindowSize () const
 
CV_WRAP int getFeatureType () const
 
void * getOldCascade ()
 
void setMaskGenerator (const Ptr< BaseCascadeClassifier::MaskGenerator > &maskGenerator)
 
Ptr< BaseCascadeClassifier::MaskGeneratorgetMaskGenerator ()
 

静的公開メンバ関数

static CV_WRAP bool convert (const String &oldcascade, const String &newcascade)
 

公開変数類

CV_OUT std::vector< Rect > & objects
 
CV_OUT std::vector< Rect > CV_OUT std::vector< int > & numDetections
 
CV_OUT std::vector< Rect > CV_OUT std::vector< int > double scaleFactor =1.1
 
CV_OUT std::vector< Rect > CV_OUT std::vector< int > double int minNeighbors =3
 
CV_OUT std::vector< Rect > CV_OUT std::vector< int > double int int flags =0
 
CV_OUT std::vector< Rect > CV_OUT std::vector< int > double int int Size minSize =Size()
 
CV_OUT std::vector< Rect > CV_OUT std::vector< int > double int int Size Size maxSize =Size() )
 
CV_OUT std::vector< Rect > CV_OUT std::vector< int > & rejectLevels
 
CV_OUT std::vector< Rect > CV_OUT std::vector< int > CV_OUT std::vector< double > & levelWeights
 
CV_OUT std::vector< Rect > CV_OUT std::vector< int > CV_OUT std::vector< double > double scaleFactor = 1.1
 
CV_OUT std::vector< Rect > CV_OUT std::vector< int > CV_OUT std::vector< double > double int minNeighbors = 3
 
CV_OUT std::vector< Rect > CV_OUT std::vector< int > CV_OUT std::vector< double > double int int flags = 0
 
CV_OUT std::vector< Rect > CV_OUT std::vector< int > CV_OUT std::vector< double > double int int Size minSize = Size()
 
CV_OUT std::vector< Rect > CV_OUT std::vector< int > CV_OUT std::vector< double > double int int Size Size maxSize = Size()
 
CV_OUT std::vector< Rect > CV_OUT std::vector< int > CV_OUT std::vector< double > double int int Size Size bool outputRejectLevels = false )
 
Ptr< BaseCascadeClassifiercc
 

詳解

Cascade classifier class for object detection.

構築子と解体子

◆ CascadeClassifier()

CV_WRAP cv::CascadeClassifier::CascadeClassifier ( const String &  filename)

Loads a classifier from a file.

引数
filenameName of the file from which the classifier is loaded.

関数詳解

◆ CV_WRAP_AS() [1/2]

cv::CascadeClassifier::CV_WRAP_AS ( detectMultiScale2  )

これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。

引数
imageMatrix of the type CV_8U containing an image where objects are detected.
objectsVector of rectangles where each rectangle contains the detected object, the rectangles may be partially outside the original image.
numDetectionsVector of detection numbers for the corresponding objects. An object's number of detections is the number of neighboring positively classified rectangles that were joined together to form the object.
scaleFactorParameter specifying how much the image size is reduced at each image scale.
minNeighborsParameter specifying how many neighbors each candidate rectangle should have to retain it.
flagsParameter with the same meaning for an old cascade as in the function cvHaarDetectObjects. It is not used for a new cascade.
minSizeMinimum possible object size. Objects smaller than that are ignored.
maxSizeMaximum possible object size. Objects larger than that are ignored. If maxSize == minSize model is evaluated on single scale.

◆ CV_WRAP_AS() [2/2]

cv::CascadeClassifier::CV_WRAP_AS ( detectMultiScale3  )

これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。 This function allows you to retrieve the final stage decision certainty of classification. For this, one needs to set outputRejectLevels on true and provide the rejectLevels and levelWeights parameter. For each resulting detection, levelWeights will then contain the certainty of classification at the final stage. This value can then be used to separate strong from weaker classifications.

A code sample on how to use it efficiently can be found below:

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;

◆ detectMultiScale()

CV_WRAP void cv::CascadeClassifier::detectMultiScale ( InputArray  image,
CV_OUT std::vector< Rect > &  objects,
double  scaleFactor = 1.1,
int  minNeighbors = 3,
int  flags = 0,
Size  minSize = Size(),
Size  maxSize = Size() 
)

Detects objects of different sizes in the input image. The detected objects are returned as a list of rectangles.

引数
imageMatrix of the type CV_8U containing an image where objects are detected.
objectsVector of rectangles where each rectangle contains the detected object, the rectangles may be partially outside the original image.
scaleFactorParameter specifying how much the image size is reduced at each image scale.
minNeighborsParameter specifying how many neighbors each candidate rectangle should have to retain it.
flagsParameter with the same meaning for an old cascade as in the function cvHaarDetectObjects. It is not used for a new cascade.
minSizeMinimum possible object size. Objects smaller than that are ignored.
maxSizeMaximum possible object size. Objects larger than that are ignored. If maxSize == minSize model is evaluated on single scale.

The function is parallelized with the TBB library.

覚え書き
  • (Python) A face detection example using cascade classifiers can be found at opencv_source_code/samples/python/facedetect.py

◆ load()

CV_WRAP bool cv::CascadeClassifier::load ( const String &  filename)

Loads a classifier from a file.

引数
filenameName of the file from which the classifier is loaded. The file may contain an old HAAR classifier trained by the haartraining application or a new cascade classifier trained by the traincascade application.

◆ read()

CV_WRAP bool cv::CascadeClassifier::read ( const FileNode node)

Reads a classifier from a FileStorage node.

覚え書き
The file may contain a new cascade classifier (trained traincascade application) only.

このクラス詳解は次のファイルから抽出されました: