Go to the documentation of this file.00001
00061 #ifndef __FACE_DETECTOR_H__
00062 #define __FACE_DETECTOR_H__
00063
00064 #ifdef __LINUX__
00065 #else
00066 #include "cob_vision/cob_vision_ipa_utils/common/include/cob_vision_ipa_utils/MathUtils.h"
00067 #include "cob_vision/cob_sensor_fusion/common/include/cob_sensor_fusion/ColoredPointCloud.h"
00068 #endif
00069
00070 #include <opencv/ml.h>
00071 #include <opencv/cv.h>
00072
00073 namespace ipa_PeopleDetector
00074 {
00075
00076 class FaceDetector
00077 {
00078 public:
00079
00081 FaceDetector(void);
00082 ~FaceDetector(void);
00083
00096 virtual unsigned long init(std::string directory, double faces_increase_search_scale, int faces_drop_groups, int faces_min_search_scale_x, int faces_min_search_scale_y,
00097 bool reason_about_3dface_size, double face_size_max_m, double face_size_min_m, double max_face_z_m, bool debug);
00098
00105 virtual unsigned long detectColorFaces(std::vector<cv::Mat>& heads_color_images, const std::vector<cv::Mat>& heads_depth_images,
00106 std::vector<std::vector<cv::Rect> >& face_coordinates);
00107
00108 protected:
00109
00110
00111 double m_faces_increase_search_scale;
00112 int m_faces_drop_groups;
00113 int m_faces_min_search_scale_x;
00114 int m_faces_min_search_scale_y;
00115 bool m_reason_about_3dface_size;
00116 double m_face_size_max_m;
00117 double m_face_size_min_m;
00118 double m_max_face_z_m;
00119 bool m_debug;
00120
00121 CvMemStorage* m_storage;
00122 CvHaarClassifierCascade* m_face_cascade;
00123
00124 bool m_initialized;
00125 };
00126
00127 }
00128
00129 #endif // __FACE_DETECTOR_H__