ViSP
2.10.0
|
#include <vpDetectorFace.h>
Public Member Functions | |
vpDetectorFace () | |
virtual | ~vpDetectorFace () |
void | setCascadeClassifierFile (const std::string &filename) |
bool | detect (const vpImage< unsigned char > &I) |
std::vector< std::vector< vpImagePoint > > & | getPolygon () |
std::vector< vpImagePoint > & | getPolygon (size_t i) |
std::string & | getMessage (size_t i) |
std::vector< std::string > & | getMessage () |
size_t | getNbObjects () const |
vpImagePoint | getCog (size_t i) const |
vpRect | getBBox (size_t i) const |
Protected Attributes | |
std::vector< cv::Rect > | m_faces |
cv::CascadeClassifier | m_face_cascade |
cv::Mat | m_frame_gray |
std::vector< std::vector< vpImagePoint > > | m_polygon |
std::vector< std::string > | m_message |
size_t | m_nb_objects |
The vpDetectorFace class is a wrapper over OpenCV Haar cascade face detection capabilities. To use this class ViSP should be build against OpenCV 2.2.0 or a more recent version.
The following sample code shows how to use this class to detect the largest face in the image. The cascade classifier file "haarcascade_frontalface_alt.xml" can be found in ViSP source code or in OpenCV.
A more complete example that works with images acquired from a camera is provided in tutorial-face-detector-live.cpp.
Definition at line 81 of file vpDetectorFace.h.
vpDetectorFace::vpDetectorFace | ( | ) |
Default constructor.
Definition at line 55 of file vpDetectorFace.cpp.
|
inlinevirtual |
Default destructor.
Definition at line 93 of file vpDetectorFace.h.
|
virtual |
Allows to detect a face in the image. When more than one face is detected, faces are sorted from largest to smallest.
I | : Input image to process. |
The number of detected faces is returned using getNbObjects(). If a face is found the functions getBBox(), getCog() return some information about the location of the face.
The largest face is always available using getBBox(0) or getCog(0).
Implements vpDetectorBase.
Definition at line 83 of file vpDetectorFace.cpp.
References vpImageConvert::convert(), m_face_cascade, m_faces, m_frame_gray, vpDetectorBase::m_message, vpDetectorBase::m_nb_objects, and vpDetectorBase::m_polygon.
|
inlineinherited |
Return the bounding box of the ith object.
Definition at line 141 of file vpDetectorBase.h.
|
inlineinherited |
Return the center of gravity location of the ith object.
Definition at line 129 of file vpDetectorBase.h.
|
inlineinherited |
Returns the contained message of the ith object if there is one.
Definition at line 108 of file vpDetectorBase.h.
References vpException::badValue.
|
inlineinherited |
Returns the contained message of the ith object if there is one.
Definition at line 118 of file vpDetectorBase.h.
|
inlineinherited |
Return the number of objects that are detected.
Definition at line 125 of file vpDetectorBase.h.
|
inlineinherited |
Returns object container box as a vector of points.
Definition at line 90 of file vpDetectorBase.h.
|
inlineinherited |
Returns ith object container box as a vector of points.
Definition at line 98 of file vpDetectorBase.h.
References vpException::badValue.
void vpDetectorFace::setCascadeClassifierFile | ( | const std::string & | filename | ) |
Set the name of the OpenCV cascade classifier file used for face detection.
filename | : Full path to access to the file. Such a file can be found in OpenCV. Within the last versions it was name "haarcascade_frontalface_alt.xml". |
Definition at line 65 of file vpDetectorFace.cpp.
References vpException::ioError, and m_face_cascade.
|
protected |
Haar cascade classifier file name.
Definition at line 85 of file vpDetectorFace.h.
Referenced by detect(), and setCascadeClassifierFile().
|
protected |
Bounding box of each detected face.
Definition at line 84 of file vpDetectorFace.h.
Referenced by detect().
|
protected |
OpenCV image used as input for the face detection.
Definition at line 86 of file vpDetectorFace.h.
Referenced by detect().
|
protectedinherited |
Message attached to each object.
Definition at line 68 of file vpDetectorBase.h.
Referenced by detect(), vpDetectorDataMatrixCode::detect(), and vpDetectorQRCode::detect().
|
protectedinherited |
Number of detected objects.
Definition at line 69 of file vpDetectorBase.h.
Referenced by detect(), vpDetectorDataMatrixCode::detect(), and vpDetectorQRCode::detect().
|
protectedinherited |
For each object, defines the polygon that contains the object.
Definition at line 67 of file vpDetectorBase.h.
Referenced by detect(), vpDetectorDataMatrixCode::detect(), and vpDetectorQRCode::detect().