53 #ifndef vpCalibration_h
54 #define vpCalibration_h
56 #include <visp/vpMatrix.h>
57 #include <visp/vpHomogeneousMatrix.h>
58 #include <visp/vpCameraParameters.h>
59 #include <visp/vpExponentialMap.h>
60 #include <visp/vpMath.h>
61 #include <visp/vpDisplay.h>
62 #include <visp/vpImage.h>
63 #include <visp/vpCalibrationException.h>
64 #include <visp/vpImagePoint.h>
65 #ifdef VISP_BUILD_DEPRECATED_FUNCTIONS
66 # include <visp/vpList.h>
90 } vpCalibrationMethodType ;
113 int addPoint(
double X,
double Y,
double Z,
vpImagePoint &ip) ;
130 static void calibrationTsai(std::vector<vpHomogeneousMatrix> &cMo,
131 std::vector<vpHomogeneousMatrix> &rMe,
134 void computeStdDeviation(
double &deviation,
double &deviation_dist);
135 int computeCalibration(vpCalibrationMethodType method,
138 bool verbose =
false) ;
139 static int computeCalibrationMulti(vpCalibrationMethodType method,
140 std::vector<vpCalibration> &table_cal,
142 double &globalReprojectionError,
143 bool verbose =
false) ;
145 static int computeCalibrationTsai(std::vector<vpCalibration> &table_cal,
153 unsigned int thickness=1) ;
155 unsigned int thickness=1) ;
159 int readData(
const char *filename) ;
160 static int readGrid(
const char *filename,
unsigned int &n,
161 std::list<double> &oX, std::list<double> &oY, std::list<double> &oZ,
162 bool verbose =
false);
165 static void setLambda(
const double &lambda){gain = lambda;}
166 int writeData(
const char *filename) ;
168 #ifdef VISP_BUILD_DEPRECATED_FUNCTIONS
175 static int computeCalibrationMulti(vpCalibrationMethodType method,
unsigned int nbPose,
178 bool verbose =
false) ;
179 vp_deprecated
static int computeCalibrationTsai(
unsigned int nbPose,
183 vp_deprecated
static int readGrid(
const char *filename,
unsigned int &n,
185 bool verbose =
false);
194 bool verbose =
false) ;
196 static void calibVVSMulti(
unsigned int nbPose,
vpCalibration table_cal[],
198 static void calibVVSMulti(std::vector<vpCalibration> &table_cal,
200 double &globalReprojectionError,
bool verbose =
false) ;
203 bool verbose =
false) ;
204 static void calibVVSWithDistortionMulti(
unsigned int nbPose,
207 bool verbose =
false );
208 static void calibVVSWithDistortionMulti( std::vector<vpCalibration> &table_cal,
210 double &globalReprojectionError,
211 bool verbose =
false);
215 std::list<double> LoX, LoY, LoZ ;
216 std::list<vpImagePoint> Lip ;
219 double residual_dist ;
221 static double threshold;
222 static unsigned int nbIterMax;