123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- #ifndef MAPPROJEC_H_
- #define MAPPROJEC_H_
- #include "map.hpp"
- namespace cv {
- namespace reg {
- class CV_EXPORTS MapProjec : public Map
- {
- public:
-
- MapProjec(void);
-
- MapProjec(const cv::Matx<double, 3, 3>& projTr);
-
- ~MapProjec(void);
- void inverseWarp(const cv::Mat& img1, cv::Mat& img2) const;
- cv::Ptr<Map> inverseMap(void) const;
- void compose(const Map& map);
- void scale(double factor);
-
- const cv::Matx<double, 3, 3>& getProjTr() const {
- return projTr_;
- }
-
- void normalize(void) {
- double z = 1./projTr_(2, 2);
- for(size_t v_i = 0; v_i < sizeof(projTr_.val)/sizeof(projTr_.val[0]); ++v_i)
- projTr_.val[v_i] *= z;
- }
- private:
- cv::Matx<double, 3, 3> projTr_;
- };
- }}
- #endif
|