00001 #ifndef FACE_CONTOUR_DETECTOR_FILTERS_LIST_H_ 00002 #define FACE_CONTOUR_DETECTOR_FILTERS_LIST_H_ 00003 00004 #include <face_contour_detector/filters/Filter.h> 00005 #include <face_contour_detector/Properties.h> 00006 #include <vector> 00007 #include <map> 00008 #include <string> 00009 #include <opencv/cv.h> 00010 00011 namespace face_contour_detector { 00012 namespace filters { 00013 00015 class List { 00016 public: 00018 List(); 00020 virtual ~List(); 00022 virtual void Add(filters::Filter* filter); 00024 virtual void SaveParameters(Properties& properties); 00026 virtual void LoadParameters(const Properties& properties); 00028 virtual void Apply(const cv::Mat& input, cv::Mat& result); 00030 virtual void DeactivateAll(); 00031 00032 typedef std::vector<filters::Filter*>::iterator Iterator; 00033 typedef std::vector<filters::Filter*>::const_iterator ConstIterator; 00034 00035 virtual Iterator Begin(); 00036 virtual Iterator End(); 00037 00038 protected: 00039 std::vector<filters::Filter*> m_filters; 00040 std::vector<bool*> m_filtersActive; 00041 }; 00042 00043 } //namespace filters 00044 } //namespace face_contour_detector 00045 00046 #endif /* FACE_CONTOUR_DETECTOR_FILTERS_LIST_H_ */