49 #ifndef vpCalibration_h 50 #define vpCalibration_h 54 #include <visp3/core/vpCameraParameters.h> 55 #include <visp3/core/vpDisplay.h> 56 #include <visp3/core/vpExponentialMap.h> 57 #include <visp3/core/vpHomogeneousMatrix.h> 58 #include <visp3/core/vpImage.h> 59 #include <visp3/core/vpImagePoint.h> 60 #include <visp3/core/vpMath.h> 61 #include <visp3/core/vpMatrix.h> 62 #include <visp3/vision/vpCalibrationException.h> 83 CALIB_VIRTUAL_VS_DIST,
85 CALIB_LAGRANGE_VIRTUAL_VS,
88 CALIB_LAGRANGE_VIRTUAL_VS_DIST,
117 int addPoint(
double X,
double Y,
double Z,
vpImagePoint &ip);
122 static void calibrationTsai(
const std::vector<vpHomogeneousMatrix> &cMo,
const std::vector<vpHomogeneousMatrix> &rMe,
128 void computeStdDeviation(
double &deviation,
double &deviation_dist);
130 bool verbose =
false);
131 static int computeCalibrationMulti(vpCalibrationMethodType method, std::vector<vpCalibration> &table_cal,
134 static int computeCalibrationTsai(
const std::vector<vpCalibration> &table_cal,
vpHomogeneousMatrix &eMc,
139 int subsampling_factor = 1);
141 int subsampling_factor = 1);
155 int readData(
const char *filename);
156 static int readGrid(
const char *filename,
unsigned int &n, std::list<double> &oX, std::list<double> &oY,
157 std::list<double> &oZ,
bool verbose =
false);
160 static void setLambda(
const double &lambda) { gain = lambda; }
161 int writeData(
const char *filename);
171 bool verbose =
false);
172 static void calibVVSMulti(std::vector<vpCalibration> &table_cal,
vpCameraParameters &cam,
173 double &globalReprojectionError,
bool verbose =
false);
176 bool verbose =
false);
177 static void calibVVSWithDistortionMulti(std::vector<vpCalibration> &table_cal,
vpCameraParameters &cam,
178 double &globalReprojectionError,
bool verbose =
false);
182 std::list<double> LoX, LoY,
184 std::list<vpImagePoint> Lip;
187 double residual_dist;
190 static double threshold;
191 static unsigned int nbIterMax;
double getResidual(void) const
get the residual in pixels
Implementation of an homogeneous matrix and operations on such kind of matrices.
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
unsigned int get_npt() const
get the number of points
Generic class defining intrinsic camera parameters.
vpHomogeneousMatrix eMc_dist
double getResidual_dist(void) const
get the residual for perspective projection with distortion (in pixels)
vpHomogeneousMatrix rMe
reference coordinates (manipulator base coordinates)
Class that defines a 2D point in an image. This class is useful for image processing and stores only ...
static const vpColor yellow