| OpenCV 5.0.0alpha Open Source Computer Vision

Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
cv::CascadeClassifier Class Reference
Object Detection » Cascade Classifier for Object Detection

Cascade classifier class for object detection. More...

`#include <opencv2/xobjdetect.hpp>`

Collaboration diagram for cv::CascadeClassifier:

## Public Member Functions
| CascadeClassifier ()
| CascadeClassifier (const String &filename)
| Loads a classifier from a file.
| ~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())
| Detects objects of different sizes in the input image. The detected objects are returned as a list of rectangles.
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
| Checks whether the classifier has been loaded.
int | getFeatureType () const
Ptr< BaseCascadeClassifier::MaskGenerator > | getMaskGenerator ()
void * | getOldCascade ()
Size | getOriginalWindowSize () const
bool | isOldFormatCascade () const
bool | load (const String &filename)
| Loads a classifier from a file.
bool | read (const FileNode &node)
| Reads a classifier from a FileStorage node.
void | setMaskGenerator (const Ptr< BaseCascadeClassifier::MaskGenerator > &maskGenerator)

## Static Public Member Functions
static bool | convert (const String &oldcascade, const String &newcascade)

## Public Attributes
Ptr< BaseCascadeClassifier > | cc

## Detailed Description

Cascade classifier class for object detection.

Examples
  samples/facedetect.cpp.

## Constructor & Destructor Documentation

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

Loads a classifier from a file.

Parameters

  filename | Name of the file from which the classifier is loaded.

## ◆ ~CascadeClassifier()

cv::CascadeClassifier::~CascadeClassifier | ( |  | ) |

## Member Function Documentation

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

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

Parameters

  image | Matrix of the type CV_8U containing an image where objects are detected.
  objects | Vector of rectangles where each rectangle contains the detected object, the rectangles may be partially outside the original image.
  scaleFactor | Parameter specifying how much the image size is reduced at each image scale.
  minNeighbors | Parameter specifying how many neighbors each candidate rectangle should have to retain it.
  flags | Parameter with the same meaning for an old cascade as in the function cvHaarDetectObjects. It is not used for a new cascade.
  minSize | Minimum possible object size. Objects smaller than that are ignored.
  maxSize | Maximum possible object size. Objects larger than that are ignored. If `maxSize == minSize` model is evaluated on single scale.

Examples
  samples/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

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters

  image | Matrix of the type CV_8U containing an image where objects are detected.
  objects | Vector of rectangles where each rectangle contains the detected object, the rectangles may be partially outside the original image.
  numDetections | Vector 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.
  scaleFactor | Parameter specifying how much the image size is reduced at each image scale.
  minNeighbors | Parameter specifying how many neighbors each candidate rectangle should have to retain it.
  flags | Parameter with the same meaning for an old cascade as in the function cvHaarDetectObjects. It is not used for a new cascade.
  minSize | Minimum possible object size. Objects smaller than that are ignored.
  maxSize | Maximum possible object size. Objects larger than that are ignored. If `maxSize == minSize` model is evaluated on single scale.

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

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. 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;
cv::CascadeClassifier
Cascade classifier class for object detection.
Definition xobjdetect.hpp:230
cv::Mat
n-dimensional dense array class
Definition mat.hpp:951
cv::Size
Size2i Size
Definition types.hpp:373

## ◆ empty()

bool cv::CascadeClassifier::empty | ( |  | ) | const

Python:
| cv.CascadeClassifier.empty( |  | ) -> | retval

Checks whether the classifier has been loaded.

Examples
  samples/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

Loads a classifier from a file.

Parameters

  filename | Name 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.

Examples
  samples/facedetect.cpp.

## ◆ read()

bool cv::CascadeClassifier::read | ( | const FileNode & | node | ) |

Python:
| cv.CascadeClassifier.read( | node | ) -> | retval

Reads a classifier from a FileStorage node.

Note
  The file may contain a new cascade classifier (trained by the traincascade application) only.

## ◆ setMaskGenerator()

void cv::CascadeClassifier::setMaskGenerator | ( | const Ptr< BaseCascadeClassifier::MaskGenerator > & | maskGenerator | ) |

## Member Data Documentation

## ◆ cc

Ptr<BaseCascadeClassifier> cv::CascadeClassifier::cc

The documentation for this class was generated from the following file:

- opencv2/xobjdetect.hpp