24 #include <core/exception.h>
25 #include <core/exceptions/software.h>
26 #include <fvclassifiers/faces.h>
27 #include <fvutils/adapters/iplimage.h>
28 #include <fvutils/color/colorspaces.h>
29 #include <fvutils/color/conversions.h>
30 #include <opencv/cv.h>
34 namespace firevision {
61 unsigned int pixel_width,
62 unsigned int pixel_height,
64 float haar_scale_factor,
69 haar_scale_factor_ = haar_scale_factor;
70 min_neighbours_ = min_neighbours;
73 cascade_ = (CvHaarClassifierCascade *)cvLoad(haarcascade_file);
78 storage_ = cvCreateMemStorage(0);
80 cvReleaseHaarClassifierCascade(&cascade_);
88 image_ = cvCreateImage(cvSize(pixel_width, pixel_height), IPL_DEPTH_8U, 3);
96 cvReleaseHaarClassifierCascade(&cascade_);
97 cvReleaseMemStorage(&storage_);
99 cvReleaseImage(&image_);
106 std::list<ROI> *rv =
new std::list<ROI>();
113 cvHaarDetectObjects(image_, cascade_, storage_, haar_scale_factor_, min_neighbours_, flags_);
115 for (
int i = 0; i < face_seq->total; ++i) {
116 CvAvgComp el = *(CvAvgComp *)cvGetSeqElem(face_seq, i);
117 ROI r(el.rect.x, el.rect.y, el.rect.width, el.rect.height,
_width,
_height);
Base class for exceptions in Fawkes.
Classifier to extract regions of interest.
unsigned int _height
Height in pixels of _src buffer.
unsigned char * _src
Source buffer, encoded as YUV422_PLANAR.
unsigned int _width
Width in pixels of _src buffer.
FacesClassifier(const char *haarcascade_file, unsigned int pixel_width, unsigned int pixel_height, IplImage *image=0, float haar_scale_factor=1.1, int min_neighbours=3, int flags=0)
Constructor.
virtual std::list< ROI > * classify()
Classify image.
virtual ~FacesClassifier()
Destructor.
static void convert_image_bgr(unsigned char *buffer, IplImage *image)
Convert image from buffer into IplImage.
unsigned int num_hint_points
Minimum estimate of points in ROI that are attributed to the ROI hint.