49 #ifndef vpCalibration_h
50 #define vpCalibration_h
52 #include <visp3/core/vpMatrix.h>
53 #include <visp3/core/vpHomogeneousMatrix.h>
54 #include <visp3/core/vpCameraParameters.h>
55 #include <visp3/core/vpExponentialMap.h>
56 #include <visp3/core/vpMath.h>
57 #include <visp3/core/vpDisplay.h>
58 #include <visp3/core/vpImage.h>
59 #include <visp3/vision/vpCalibrationException.h>
60 #include <visp3/core/vpImagePoint.h>
83 } vpCalibrationMethodType ;
109 int addPoint(
double X,
double Y,
double Z,
vpImagePoint &ip) ;
114 static void calibrationTsai(std::vector<vpHomogeneousMatrix> &cMo,
115 std::vector<vpHomogeneousMatrix> &rMe,
121 void computeStdDeviation(
double &deviation,
double &deviation_dist);
125 bool verbose =
false) ;
127 std::vector<vpCalibration> &table_cal,
129 double &globalReprojectionError,
130 bool verbose =
false) ;
132 static int computeCalibrationTsai(std::vector<vpCalibration> &table_cal,
140 unsigned int thickness=1,
int subsampling_factor=1) ;
142 unsigned int thickness=1,
int subsampling_factor=1) ;
156 int readData(
const char *filename) ;
157 static int readGrid(
const char *filename,
unsigned int &n,
158 std::list<double> &oX, std::list<double> &oY, std::list<double> &oZ,
159 bool verbose =
false);
162 static void setLambda(
const double &lambda){gain = lambda;}
163 int writeData(
const char *filename) ;
171 bool verbose =
false) ;
173 static void calibVVSMulti(
unsigned int nbPose,
vpCalibration table_cal[],
175 static void calibVVSMulti(std::vector<vpCalibration> &table_cal,
177 double &globalReprojectionError,
bool verbose =
false) ;
180 bool verbose =
false) ;
181 static void calibVVSWithDistortionMulti(
unsigned int nbPose,
184 bool verbose =
false );
185 static void calibVVSWithDistortionMulti( std::vector<vpCalibration> &table_cal,
187 double &globalReprojectionError,
188 bool verbose =
false);
192 std::list<double> LoX, LoY, LoZ ;
193 std::list<vpImagePoint> Lip ;
196 double residual_dist ;
198 static double threshold;
199 static unsigned int nbIterMax;
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
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