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 <opencv2/opencv.hpp>
00071
00072 namespace ipa_PeopleDetector
00073 {
00074
00075 class FaceDetector
00076 {
00077 public:
00078
00080 FaceDetector(void);
00081 ~FaceDetector(void);
00082
00095 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,
00096 bool reason_about_3dface_size, double face_size_max_m, double face_size_min_m, double max_face_z_m, bool debug);
00097
00104 virtual unsigned long detectColorFaces(std::vector<cv::Mat>& heads_color_images, const std::vector<cv::Mat>& heads_depth_images,
00105 std::vector<std::vector<cv::Rect> >& face_coordinates);
00106
00107 protected:
00108
00109
00110 double m_faces_increase_search_scale;
00111 int m_faces_drop_groups;
00112 int m_faces_min_search_scale_x;
00113 int m_faces_min_search_scale_y;
00114 bool m_reason_about_3dface_size;
00115 double m_face_size_max_m;
00116 double m_face_size_min_m;
00117 double m_max_face_z_m;
00118 bool m_debug;
00119
00120 CvMemStorage* m_storage;
00121 CvHaarClassifierCascade* m_face_cascade;
00122
00123 bool m_initialized;
00124 };
00125
00126 }
00127
00128 #endif // __FACE_DETECTOR_H__