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 ;
116 int addPoint(
double X,
double Y,
double Z,
vpImagePoint &ip) ;
121 static void calibrationTsai(std::vector<vpHomogeneousMatrix> &cMo,
122 std::vector<vpHomogeneousMatrix> &rMe,
128 void computeStdDeviation(
double &deviation,
double &deviation_dist);
132 bool verbose =
false) ;
134 std::vector<vpCalibration> &table_cal,
136 double &globalReprojectionError,
137 bool verbose =
false) ;
139 static int computeCalibrationTsai(std::vector<vpCalibration> &table_cal,
147 unsigned int thickness=1,
int subsampling_factor=1) ;
149 unsigned int thickness=1,
int subsampling_factor=1) ;
163 int readData(
const char *filename) ;
164 static int readGrid(
const char *filename,
unsigned int &n,
165 std::list<double> &oX, std::list<double> &oY, std::list<double> &oZ,
166 bool verbose =
false);
169 static void setLambda(
const double &lambda){gain = lambda;}
170 int writeData(
const char *filename) ;
172 #ifdef VISP_BUILD_DEPRECATED_FUNCTIONS
179 static int computeCalibrationMulti(vpCalibrationMethodType method,
unsigned int nbPose,
182 bool verbose =
false) ;
183 vp_deprecated
static int computeCalibrationTsai(
unsigned int nbPose,
187 vp_deprecated
static int readGrid(
const char *filename,
unsigned int &n,
189 bool verbose =
false);
198 bool verbose =
false) ;
200 static void calibVVSMulti(
unsigned int nbPose,
vpCalibration table_cal[],
202 static void calibVVSMulti(std::vector<vpCalibration> &table_cal,
204 double &globalReprojectionError,
bool verbose =
false) ;
207 bool verbose =
false) ;
208 static void calibVVSWithDistortionMulti(
unsigned int nbPose,
211 bool verbose =
false );
212 static void calibVVSWithDistortionMulti( std::vector<vpCalibration> &table_cal,
214 double &globalReprojectionError,
215 bool verbose =
false);
219 std::list<double> LoX, LoY, LoZ ;
220 std::list<vpImagePoint> Lip ;
223 double residual_dist ;
225 static double threshold;
226 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