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;
The class provides a data structure for the homogeneous matrices as well as a set of operations on th...
Provide simple list management.
Class to define colors available for display functionnalities.
static double getLambda()
set the gain for the virtual visual servoing algorithm
Tools for perspective camera calibration.
vpHomogeneousMatrix cMo
(as a 3x4 matrix [R T])
static void setLambda(const double &lambda)
set the gain for the virtual visual servoing algorithm
Generic class defining intrinsic camera parameters.
vpHomogeneousMatrix eMc_dist
unsigned int get_npt() const
get the number of points
vpHomogeneousMatrix rMe
reference coordinates (manipulator base coordinates)
double getResidual_dist(void) const
get the residual for perspective projection with distortion (in pixels)
Class that defines a 2D point in an image. This class is useful for image processing and stores only ...
static const vpColor yellow
double getResidual(void) const
get the residual in pixels