00001 00002 #include <ros/ros.h> 00003 #include <nodelet/nodelet.h> 00004 #include <image_transport/image_transport.h> 00005 #include <opencv2/core/core.hpp> 00006 00007 #include "omnicamera/LookupStitcher.h" 00008 #include "omnicamera/LadySaw.h" 00009 00010 using omnicamera::LookupStitcher; 00011 using omnicamera::LadySaw; 00012 00013 namespace omnicamera { 00014 00021 class LadybugProcNodelet : public nodelet::Nodelet { 00022 public: 00023 LadybugProcNodelet(); 00024 void onInit(); 00025 void imageCallback(const sensor_msgs::ImageConstPtr& msg); 00026 00027 private: 00028 // boost::shared_ptr<image_transport::ImageTransport> it; 00029 // Panorama stitching 00030 int inWidth; 00031 int inHeight; 00032 int outWidth; 00033 int outHeight; 00034 bool alpha; 00035 int radius; 00036 string lutPath; 00037 omnicamera::LookupStitcher stitcher; 00038 image_transport::Publisher outPub; 00039 ros::Publisher camPub; 00040 bool lookupTablesLoaded; 00041 Mat pano; 00042 // Image splitting 00043 LadySaw ladySaw; 00044 vector<Mat> cams; 00045 image_transport::Subscriber imageSub; 00046 image_transport::Publisher outPubs[6]; 00047 ros::Publisher camPubs[6]; 00048 }; 00049 00050 LadybugProcNodelet::LadybugProcNodelet() { 00051 } 00052 00053 } // namespace omnicamera