00001
00002 #ifndef RadialLensCorrection_h_
00003 #define RadialLensCorrection_h_
00004 #ifdef VCL_NEEDS_PRAGMA_INTERFACE
00005 #pragma interface
00006 #endif
00007
00008
00009
00010
00011
00012
00013 #include <oxp/Mapping_2d_2d.h>
00014
00015 class RadialLensCorrection : public Mapping_2d_2d
00016 {
00017 public:
00018 RadialLensCorrection(double cx, double cy, double sx, double sy, double k2, double k4 = 0);
00019 RadialLensCorrection(double k2);
00020 RadialLensCorrection(int w, int h, double k2);
00021
00022 protected:
00023 virtual void implement_map(double x1, double y1, double* x2, double* y2);
00024 virtual void implement_inverse_map(double x2, double y2, double* x1, double* y1);
00025
00026 void init(double cx, double cy, double sx, double sy, double k2, double k4);
00027
00028 double _cx;
00029 double _cy;
00030 double _sx;
00031 double _sy;
00032 double _k2;
00033 double _k4;
00034 double _invsx;
00035 double _invsy;
00036 };
00037
00038 #endif // RadialLensCorrection_h_