00001 00002 #ifndef OMNICAMERA_LOOKUPSTITCHER_H_ 00003 #define OMNICAMERA_LOOKUPSTITCHER_H_ 00004 00005 #include <opencv2/core/core.hpp> 00006 00007 using std::string; 00008 using std::vector; 00009 using cv::Mat; 00010 00011 namespace omnicamera { 00012 00016 class LookupStitcher { 00017 00018 public: 00019 LookupStitcher(); 00020 virtual ~LookupStitcher(); 00021 void clearLookupTables(); 00022 void addLookupTables(Mat x, Mat y, Mat a); 00023 void addLookupTables(const string x, const string y, const string a); 00024 void stitchImage(const Mat &src, Mat &image); 00025 00034 bool fixBounds(const int width, const int height); 00035 00036 int getLutCount() const; 00037 vector<Mat> getLutX(); 00038 vector<Mat> getLutY(); 00039 vector<Mat> getLutA(); 00040 00041 vector<Mat> lutX; // lutX and lutY must have same length 00042 vector<Mat> lutY; 00043 vector<Mat> lutA; // lutA must either have same length as lutX and lutY, or be empty 00044 00045 private: 00046 int lutCount; 00047 00048 }; 00049 00050 } // namespace omnicamera 00051 00052 #endif /* OMNICAMERA_LOOKUPSTITCHER_H_ */