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);
118 r.num_hint_points = el.rect.width * el.rect.height;