00001 #ifndef IMAGE_PROC_PROCESSOR_H 00002 #define IMAGE_PROC_PROCESSOR_H 00003 00004 #include <opencv/cv.h> 00005 #include <image_geometry/pinhole_camera_model.h> 00006 #include <sensor_msgs/Image.h> 00007 00008 namespace image_proc { 00009 00010 struct ImageSet 00011 { 00012 std::string color_encoding; 00013 cv::Mat mono; 00014 cv::Mat rect; 00015 cv::Mat color; 00016 cv::Mat rect_color; 00017 }; 00018 00019 class Processor 00020 { 00021 public: 00022 Processor() 00023 : interpolation_(CV_INTER_LINEAR) 00024 { 00025 } 00026 00027 int interpolation_; 00028 00029 enum { 00030 MONO = 1 << 0, 00031 RECT = 1 << 1, 00032 COLOR = 1 << 2, 00033 RECT_COLOR = 1 << 3, 00034 ALL = MONO | RECT | COLOR | RECT_COLOR 00035 }; 00036 00037 bool process(const sensor_msgs::ImageConstPtr& raw_image, 00038 const image_geometry::PinholeCameraModel& model, 00039 ImageSet& output, int flags = ALL) const; 00040 }; 00041 00042 } //namespace image_proc 00043 00044 #endif