41 #include <visp3/core/vpCameraParameters.h>
42 #include <visp3/core/vpDebug.h>
43 #include <visp3/core/vpException.h>
44 #include <visp3/core/vpMath.h>
45 #include <visp3/core/vpMeterPixelConversion.h>
57 double &rho_p,
double &theta_p)
59 double co = cos(theta_m);
60 double si = sin(theta_m);
68 theta_p = atan2(cam.m_px * si, cam.m_py * co);
69 rho_p = (cam.m_px * cam.m_py * rho_m + cam.m_u0 * cam.m_py * co + cam.m_v0 * cam.m_px * si);
100 vpImagePoint ¢er_p,
double &n20_p,
double &n11_p,
double &n02_p)
103 double xc_m = circle.
p[0];
104 double yc_m = circle.
p[1];
105 double n20_m = circle.
p[2];
106 double n11_m = circle.
p[3];
107 double n02_m = circle.
p[4];
143 vpImagePoint ¢er_p,
double &n20_p,
double &n11_p,
double &n02_p)
146 double xc_m = sphere.
p[0];
147 double yc_m = sphere.
p[1];
148 double n20_m = sphere.
p[2];
149 double n11_m = sphere.
p[3];
150 double n02_m = sphere.
p[4];
179 double n11_m,
double n02_m,
vpImagePoint ¢er_p,
double &n20_p,
180 double &n11_p,
double &n02_p)
189 #if defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_CALIB3D)
201 double &rho_p,
double &theta_p)
203 double co = cos(theta_m);
204 double si = sin(theta_m);
205 double px = cameraMatrix.at<
double>(0, 0);
206 double py = cameraMatrix.at<
double>(1, 1);
207 double u0 = cameraMatrix.at<
double>(0, 2);
208 double v0 = cameraMatrix.at<
double>(1, 2);
211 if (fabs(d) < 1e-6) {
216 theta_p = atan2(px * si, py * co);
217 rho_p = (px * py * rho_m + u0 * py * co + v0 * px * si);
251 double &n20_p,
double &n11_p,
double &n02_p)
253 double px = cameraMatrix.at<
double>(0, 0);
254 double py = cameraMatrix.at<
double>(1, 1);
255 cv::Mat distCoeffs = cv::Mat::zeros(5, 1, CV_64FC1);
257 double xc_m = circle.
p[0];
258 double yc_m = circle.
p[1];
259 double n20_m = circle.
p[2];
260 double n11_m = circle.
p[3];
261 double n02_m = circle.
p[4];
266 n11_p = n11_m * px * py;
300 double &n20_p,
double &n11_p,
double &n02_p)
302 double px = cameraMatrix.at<
double>(0, 0);
303 double py = cameraMatrix.at<
double>(1, 1);
304 cv::Mat distCoeffs = cv::Mat::zeros(5, 1, CV_64FC1);
306 double xc_m = sphere.
p[0];
307 double yc_m = sphere.
p[1];
308 double n20_m = sphere.
p[2];
309 double n11_m = sphere.
p[3];
310 double n02_m = sphere.
p[4];
315 n11_p = n11_m * px * py;
338 double n11_m,
double n02_m,
vpImagePoint ¢er_p,
double &n20_p,
339 double &n11_p,
double &n02_p)
341 double px = cameraMatrix.at<
double>(0, 0);
342 double py = cameraMatrix.at<
double>(1, 1);
343 cv::Mat distCoeffs = cv::Mat::zeros(5, 1, CV_64FC1);
348 n11_p = n11_m * px * py;
368 const double &y,
double &u,
double &v)
370 std::vector<cv::Point3d> objectPoints_vec;
371 objectPoints_vec.push_back(cv::Point3d(x, y, 1.0));
372 std::vector<cv::Point2d> imagePoints_vec;
373 cv::projectPoints(objectPoints_vec, cv::Mat::eye(3, 3, CV_64FC1), cv::Mat::zeros(3, 1, CV_64FC1), cameraMatrix,
374 distCoeffs, imagePoints_vec);
375 u = imagePoints_vec[0].x;
376 v = imagePoints_vec[0].y;
396 std::vector<cv::Point3d> objectPoints_vec;
397 objectPoints_vec.push_back(cv::Point3d(x, y, 1.0));
398 std::vector<cv::Point2d> imagePoints_vec;
399 cv::projectPoints(objectPoints_vec, cv::Mat::eye(3, 3, CV_64FC1), cv::Mat::zeros(3, 1, CV_64FC1), cameraMatrix,
400 distCoeffs, imagePoints_vec);
401 iP.
set_u(imagePoints_vec[0].x);
402 iP.
set_v(imagePoints_vec[0].y);
Generic class defining intrinsic camera parameters.
Class that defines a 3D circle in the object frame and allows forward projection of a 3D circle in th...
error that can be emitted by ViSP classes.
@ divideByZeroError
Division by zero.
Class that defines a 2D point in an image. This class is useful for image processing and stores only ...
static double sqr(double x)
static void convertLine(const vpCameraParameters &cam, const double &rho_m, const double &theta_m, double &rho_p, double &theta_p)
static void convertPoint(const vpCameraParameters &cam, const double &x, const double &y, double &u, double &v)
static void convertEllipse(const vpCameraParameters &cam, const vpSphere &sphere, vpImagePoint ¢er_p, double &n20_p, double &n11_p, double &n02_p)
Class that defines a 3D sphere in the object frame and allows forward projection of a 3D sphere in th...