OpenCV  4.8.0
Open Source Computer Vision
Public Member Functions | Static Public Member Functions | List of all members
cv::cuda::CascadeClassifier Class Referenceabstract

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

#include <opencv2/cudaobjdetect.hpp>

Inheritance diagram for cv::cuda::CascadeClassifier:
cv::Algorithm

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 (FileStorage &fs, const String &name) const
 
void write (const Ptr< FileStorage > &fs, const String &name=String()) const
 

Static Public Member Functions

static Ptr< cuda::CascadeClassifiercreate (const String &filename)
 Loads the classifier from a file. Cascade type is detected automatically by constructor parameter. More...
 
static Ptr< cuda::CascadeClassifiercreate (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_objectsObjects array in internal representation.
objectsResulting array.

◆ create() [1/2]

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

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

Parameters
filenameName 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<cuda::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
imageMatrix of type CV_8U containing an image where objects should be detected.
objectsBuffer to store detected objects (rectangles).
streamCUDA 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: