OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimSmacCallibrationSystem.h
Go to the documentation of this file.
1 //*******************************************************************
2 //
3 // License: See top level LICENSE.txt file.
4 //
5 // Author: Garrett Potts
6 //
7 // Description:
8 //
9 // Proecedure for compensation of aerial camera lens distortion
10 // as computed by the Simultaneous Multiframe Analytical Calibration
11 // (SMAC) System:
12 //
13 //*******************************************************************
14 // $Id$
15 #ifndef ossimSmacCallibrationSystem_HEADER
16 #define ossimSmacCallibrationSystem_HEADER
18 
60 {
61 public:
62  ossimSmacCallibrationSystem(const ossimDpt& callibratedCenter = ossimDpt(0.0, 0.0))
63  :ossimLensDistortion(callibratedCenter)
64  {
65  _symmetricRadialDistortionCoefficients[0] = 0;
66  _symmetricRadialDistortionCoefficients[1] = 0;
67  _symmetricRadialDistortionCoefficients[2] = 0;
68  _symmetricRadialDistortionCoefficients[3] = 0;
69  _symmetricRadialDistortionCoefficients[4] = 0;
70  _decenteringDistortionCoefficients[0] = 0;
71  _decenteringDistortionCoefficients[1] = 0;
72  _decenteringDistortionCoefficients[2] = 0;
73  _decenteringDistortionCoefficients[3] = 0;
74  }
75  ossimSmacCallibrationSystem(double k0, double k1, double k2, double k3, double k4,
76  double p1, double p2, double p3, double p4,
77  const ossimDpt& callibratedCenter = ossimDpt(0.0,0.0))
78  :ossimLensDistortion(callibratedCenter)
79  {
80  setSymmetricRadialDistortionCoefficients(k0, k1, k2, k3, k4);
81  _decenteringDistortionCoefficients[0] = p1;
82  _decenteringDistortionCoefficients[1] = p2;
83  _decenteringDistortionCoefficients[2] = p3;
84  _decenteringDistortionCoefficients[3] = p4;
85  }
87  {
90  _symmetricRadialDistortionCoefficients);
93  _decenteringDistortionCoefficients);
94  }
95  virtual ossimObject* dup()const
96  {
97  return new ossimSmacCallibrationSystem(*this);
98  }
100  {
101  return _symmetricRadialDistortionCoefficients;
102  }
103  void setSymmetricRadialDistortionCoefficients(double k0, double k1, double k2, double k3, double k4)
104  {
105  _symmetricRadialDistortionCoefficients[0] = k0;
106  _symmetricRadialDistortionCoefficients[1] = k1;
107  _symmetricRadialDistortionCoefficients[2] = k2;
108  _symmetricRadialDistortionCoefficients[3] = k3;
109  _symmetricRadialDistortionCoefficients[4] = k4;
110  }
112  {
113  return _decenteringDistortionCoefficients;
114  }
115  void setDecenteringDistortionCoefficients(double p1, double p2, double p3, double p4)
116  {
117  _decenteringDistortionCoefficients[0] = p1;
118  _decenteringDistortionCoefficients[1] = p2;
119  _decenteringDistortionCoefficients[2] = p3;
120  _decenteringDistortionCoefficients[3] = p4;
121  }
122  const double* radialDistortionCoefficients()const
123  {
124  return _symmetricRadialDistortionCoefficients;
125  }
126  virtual void undistort(const ossimDpt& input, ossimDpt& output)const;
127 
128  static void test();
129 protected:
134  double _symmetricRadialDistortionCoefficients[5];
135 
140  double _decenteringDistortionCoefficients[4];
141 
142 };
143 
144 #endif
const double * decenteringDistortionCoefficients() const
double _decenteringDistortionCoefficients[4]
The coeeficients are arranged index 0..N-1 where 0 refers to P1 ...
ossimSmacCallibrationSystem(double k0, double k1, double k2, double k3, double k4, double p1, double p2, double p3, double p4, const ossimDpt &callibratedCenter=ossimDpt(0.0, 0.0))
double _symmetricRadialDistortionCoefficients[5]
The coeeficients are arranged index 0..N-1 where 0 refers to K'0 ...
const double * symmetricRadialDistortionCoefficients() const
void setSymmetricRadialDistortionCoefficients(double k0, double k1, double k2, double k3, double k4)
Proecedure for compensation of aerial camera lens distortion as computed by the Simultaneous Multif...
const double * radialDistortionCoefficients() const
virtual void undistort(const ossimDpt &input, ossimDpt &output) const =0
ossimSmacCallibrationSystem(const ossimDpt &callibratedCenter=ossimDpt(0.0, 0.0))
#define OSSIM_DLL
virtual ossimObject * dup() const
ossimSmacCallibrationSystem(const ossimSmacCallibrationSystem &src)
void setDecenteringDistortionCoefficients(double p1, double p2, double p3, double p4)