OpenCV: cv::cuda::CascadeClassifier Class Reference

| OpenCV 3.4.2 Open Source Computer Vision

Public Member Functions | Static Public Member Functions | List of all members
cv::cuda::CascadeClassifier Class Referenceabstract
Core functionality » OpenGL interoperability » CUDA-accelerated Computer Vision » Object Detection

Cascade classifier class used for object detection. Supports HAAR and LBP cascades. : More...

`#include "cudaobjdetect.hpp"`

Inheritance diagram for cv::cuda::CascadeClassifier:

## Public Member Functions
virtual void | convert (OutputArray gpu_objects, std::vector< Rect > &objects)=0
| Converts objects array from internal representation to standard vector. More...
virtual void | detectMultiScale (InputArray image, OutputArray objects, Stream &stream=Stream::Null())=0
| Detects objects of different sizes in the input image. More...
virtual Size | getClassifierSize () const =0
virtual bool | getFindLargestObject ()=0
virtual int | getMaxNumObjects () const =0
virtual Size | getMaxObjectSize () const =0
virtual int | getMinNeighbors () const =0
virtual Size | getMinObjectSize () const =0
virtual double | getScaleFactor () const =0
virtual void | setFindLargestObject (bool findLargestObject)=0
virtual void | setMaxNumObjects (int maxNumObjects)=0
virtual void | setMaxObjectSize (Size maxObjectSize)=0
virtual void | setMinNeighbors (int minNeighbors)=0
virtual void | setMinObjectSize (Size minSize)=0
| Minimum possible object size. Objects smaller than that are ignored. More...
virtual void | setScaleFactor (double scaleFactor)=0
| Parameter specifying how much the image size is reduced at each image scale. More...
Public Member Functions inherited from cv::Algorithm
| Algorithm ()
virtual | ~Algorithm ()
virtual void | clear ()
| Clears the algorithm state. More...
virtual bool | empty () const
| Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read. More...
virtual String | getDefaultName () const
virtual void | read (const FileNode &fn)
| Reads algorithm parameters from a file storage. More...
virtual void | save (const String &filename) const
virtual void | write (FileStorage &fs) const
| Stores algorithm parameters in a file storage. More...
void | write (const Ptr< FileStorage > &fs, const String &name=String()) const
| simplified API for language bindings This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...

## Static Public Member Functions
static Ptr< CascadeClassifier > | create (const String &filename)
| Loads the classifier from a file. Cascade type is detected automatically by constructor parameter. More...
static Ptr< CascadeClassifier > | create (const FileStorage &file)
Static Public Member Functions inherited from cv::Algorithm
template<typename _Tp >
static Ptr< _Tp > | load (const String &filename, const String &objname=String())
| Loads algorithm from the file. More...
template<typename _Tp >
static Ptr< _Tp > | loadFromString (const String &strModel, const String &objname=String())
| Loads algorithm from a String. More...
template<typename _Tp >
static Ptr< _Tp > | read (const FileNode &fn)
| Reads algorithm from the file node. More...

## Additional Inherited Members
Protected Member Functions inherited from cv::Algorithm
void | writeFormat (FileStorage &fs) const

## Detailed Description

Cascade classifier class used for object detection. Supports HAAR and LBP cascades. :

Note
  - A cascade classifier example can be found at opencv_source_code/samples/gpu/cascadeclassifier.cpp
    - A Nvidea API specific cascade classifier example can be found at opencv_source_code/samples/gpu/cascadeclassifier_nvidia_api.cpp

## Member Function Documentation

## ◆ convert()

virtual void cv::cuda::CascadeClassifier::convert | ( | OutputArray | gpu_objects,
|  | std::vector< Rect > & | objects
| ) |  |
| pure virtual

Converts objects array from internal representation to standard vector.

Parameters

  gpu_objects | Objects array in internal representation.
  objects | Resulting array.

## ◆ create() [1/2]

static Ptr<CascadeClassifier> cv::cuda::CascadeClassifier::create | ( | const String & | filename | ) |
| static

Loads the classifier from a file. Cascade type is detected automatically by constructor parameter.

Parameters

  filename | Name of the file from which the classifier is loaded. Only the old haar classifier (trained by the haar training application) and NVIDIA's nvbin are supported for HAAR and only new type of OpenCV XML cascade supported for LBP. The working haar models can be found at opencv_folder/data/haarcascades_cuda/

## ◆ create() [2/2]

static Ptr<CascadeClassifier> cv::cuda::CascadeClassifier::create | ( | const FileStorage & | file | ) |
| static

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

## ◆ detectMultiScale()

virtual void cv::cuda::CascadeClassifier::detectMultiScale | ( | InputArray | image,
|  | OutputArray | objects,
|  | Stream & | stream = `Stream::Null()`
| ) |  |
| pure virtual

Detects objects of different sizes in the input image.

Parameters

  image | Matrix of type CV_8U containing an image where objects should be detected.
  objects | Buffer to store detected objects (rectangles).
  stream | CUDA stream.

To get final array of detected objects use CascadeClassifier::convert method.

Ptr<cuda::CascadeClassifier> cascade_gpu = cuda::CascadeClassifier::create(...);
Mat image_cpu = imread(...)
GpuMat image_gpu(image_cpu);
GpuMat objbuf;
cascade_gpu->detectMultiScale(image_gpu, objbuf);
std::vector<Rect> faces;
cascade_gpu->convert(objbuf, faces);
for(int i = 0; i < detections_num; ++i)
cv::rectangle(image_cpu, faces[i], Scalar(255));
imshow("Faces", image_cpu);

See also
  CascadeClassifier::detectMultiScale

## ◆ getClassifierSize()

virtual Size cv::cuda::CascadeClassifier::getClassifierSize | ( |  | ) | const
| pure virtual

## ◆ getFindLargestObject()

virtual bool cv::cuda::CascadeClassifier::getFindLargestObject | ( |  | ) |
| pure virtual

## ◆ getMaxNumObjects()

virtual int cv::cuda::CascadeClassifier::getMaxNumObjects | ( |  | ) | const
| pure virtual

## ◆ getMaxObjectSize()

virtual Size cv::cuda::CascadeClassifier::getMaxObjectSize | ( |  | ) | const
| pure virtual

## ◆ getMinNeighbors()

virtual int cv::cuda::CascadeClassifier::getMinNeighbors | ( |  | ) | const
| pure virtual

## ◆ getMinObjectSize()

virtual Size cv::cuda::CascadeClassifier::getMinObjectSize | ( |  | ) | const
| pure virtual

## ◆ getScaleFactor()

virtual double cv::cuda::CascadeClassifier::getScaleFactor | ( |  | ) | const
| pure virtual

## ◆ setFindLargestObject()

virtual void cv::cuda::CascadeClassifier::setFindLargestObject | ( | bool | findLargestObject | ) |
| pure virtual

## ◆ setMaxNumObjects()

virtual void cv::cuda::CascadeClassifier::setMaxNumObjects | ( | int | maxNumObjects | ) |
| pure virtual

## ◆ setMaxObjectSize()

virtual void cv::cuda::CascadeClassifier::setMaxObjectSize | ( | Size | maxObjectSize | ) |
| pure virtual

Maximum possible object size. Objects larger than that are ignored. Used for second signature and supported only for LBP cascades.

## ◆ setMinNeighbors()

virtual void cv::cuda::CascadeClassifier::setMinNeighbors | ( | int | minNeighbors | ) |
| pure virtual

Parameter specifying how many neighbors each candidate rectangle should have to retain it.

## ◆ setMinObjectSize()

virtual void cv::cuda::CascadeClassifier::setMinObjectSize | ( | Size | minSize | ) |
| pure virtual

Minimum possible object size. Objects smaller than that are ignored.

## ◆ setScaleFactor()

virtual void cv::cuda::CascadeClassifier::setScaleFactor | ( | double | scaleFactor | ) |
| pure virtual

Parameter specifying how much the image size is reduced at each image scale.

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

- cudaobjdetect/include/opencv2/cudaobjdetect.hpp