Visual Servoing Platform
version 3.2.0 under development (2019-01-22)
|
#include <visp3/core/vpPixelMeterConversion.h>
Static Public Member Functions | |
Using ViSP camera parameters | |
static void | convertLine (const vpCameraParameters &cam, const double &rho_p, const double &theta_p, double &rho_m, double &theta_m) |
static void | convertMoment (const vpCameraParameters &cam, unsigned int order, const vpMatrix &moment_pixel, vpMatrix &moment_meter) |
static void | convertPoint (const vpCameraParameters &cam, const double &u, const double &v, double &x, double &y) |
static void | convertPoint (const vpCameraParameters &cam, const vpImagePoint &iP, double &x, double &y) |
Using OpenCV camera parameters | |
static void | convertLine (const cv::Mat &cameraMatrix, const double &rho_p, const double &theta_p, double &rho_m, double &theta_m) |
static void | convertMoment (const cv::Mat &cameraMatrix, unsigned int order, const vpMatrix &moment_pixel, vpMatrix &moment_meter) |
static void | convertPoint (const cv::Mat &cameraMatrix, const cv::Mat &distCoeffs, const double &u, const double &v, double &x, double &y) |
static void | convertPoint (const cv::Mat &cameraMatrix, const cv::Mat &distCoeffs, const vpImagePoint &iP, double &x, double &y) |
Various conversion functions to transform primitives (2D line, moments, 2D point) from pixel to normalized coordinates in meter in the image plane.
Tranformation relies either on ViSP camera parameters implemented in vpCameraParameters or on OpenCV camera parameters that are set from a projection matrix and a distorsion coefficients vector.
Definition at line 71 of file vpPixelMeterConversion.h.
|
static |
Line parameters conversion from pixel to normalized coordinates in meter using ViSP camera parameters. This function doesn't use distorsion coefficients.
[in] | cam | : camera parameters. |
[in] | rho_p,theta_p | : Line parameters expressed in pixels. |
[out] | rho_m,theta_m | : Line parameters expressed in meters in the image plane. |
Definition at line 59 of file vpPixelMeterConversion.cpp.
References vpException::divideByZeroError, vpMath::sqr(), and vpERROR_TRACE.
Referenced by vpFeatureBuilder::create().
|
static |
Line parameters conversion from pixel to normalized coordinates in meter using OpenCV camera parameters. This function doesn't use distorsion coefficients.
[in] | cameraMatrix | : Camera Matrix |
[in] | rho_p,theta_p | : Line parameters expressed in pixels. |
[out] | rho_m,theta_m | : Line parameters expressed in meters in the image plane. |
Definition at line 136 of file vpPixelMeterConversion.cpp.
References vpException::divideByZeroError, vpMath::sqr(), and vpERROR_TRACE.
|
static |
Moments conversion from pixel to normalized coordinates in meter using ViSP camera parameters. This function doesn't use distorsion coefficients.
[in] | cam | : camera parameters. |
[in] | order | : Moment order. |
[in] | moment_pixel | : Moment values in pixels. |
[out] | moment_meter | : Moment values in meters in the image plane. |
Definition at line 85 of file vpPixelMeterConversion.cpp.
References vpMath::comb().
Referenced by vpFeatureBuilder::create().
|
static |
Moments conversion from pixel to normalized coordinates in meter using OpenCV camera parameters. This function doesn't use distorsion coefficients.
[in] | cameraMatrix | : Camera Matrix |
[in] | order | : Moment order. |
[in] | moment_pixel | : Moment values in pixels. |
[out] | moment_meter | : Moment values in meters in the image plane. |
Definition at line 167 of file vpPixelMeterConversion.cpp.
References vpMath::comb().
|
inlinestatic |
Point coordinates conversion from pixel coordinates to normalized coordinates in meter using ViSP camera parameters.
The used formula depends on the projection model of the camera. To know the currently used projection model use vpCameraParameter::get_projModel()
[in] | cam | : camera parameters. |
[in] | u | : input coordinate in pixels along image horizontal axis. |
[in] | v | : input coordinate in pixels along image vertical axis. |
[out] | x | : output coordinate in meter along image plane x-axis. |
[out] | y | : output coordinate in meter along image plane y-axis. |
and in the case of perspective projection without distortion.
and with in the case of perspective projection with distortion.
Definition at line 103 of file vpPixelMeterConversion.h.
References vpCameraParameters::perspectiveProjWithDistortion, and vpCameraParameters::perspectiveProjWithoutDistortion.
Referenced by vpCalibration::addPoint(), vpFeatureLuminance::buildFrom(), vpKeyPoint::compute3D(), vpKeyPoint::compute3DForPointsOnCylinders(), vpMbtFaceDepthNormal::computeDesiredFeatures(), vpMbtDistanceKltCylinder::computeInteractionMatrixAndResidu(), vpMbtDistanceKltPoints::computeInteractionMatrixAndResidu(), vpMbtDistanceCircle::computeInteractionMatrixError(), vpFeatureBuilder::create(), vpMomentObject::fromImage(), vpImageSimulator::getImage(), vpMbtDistanceKltCylinder::init(), vpMbTracker::initClick(), vpMbTracker::initFromPoints(), vpKeyPoint::matchPoint(), and vpKinect::warpRGBFrame().
|
inlinestatic |
Point coordinates conversion from pixel coordinates Coordinates in pixel to normalized coordinates in meter using ViSP camera parameters.
The used formula depends on the projection model of the camera. To know the currently used projection model use vpCameraParameter::get_projModel()
[in] | cam | : camera parameters. |
[in] | iP | : input coordinates in pixels. |
[out] | x | : output coordinate in meter along image plane x-axis. |
[out] | y | : output coordinate in meter along image plane y-axis. |
Thanks to the pixel coordinates in the frame (u,v), the meter coordinates are given by :
and in the case of perspective projection without distortion.
and with in the case of perspective projection with distortion.
Definition at line 140 of file vpPixelMeterConversion.h.
References vpImagePoint::get_u(), vpImagePoint::get_v(), vpCameraParameters::perspectiveProjWithDistortion, vpCameraParameters::perspectiveProjWithoutDistortion, and vpMath::sqr().
|
static |
Point coordinates conversion from pixel coordinates to normalized coordinates in meter using OpenCV camera parameters.
[in] | cameraMatrix | : Camera Matrix |
[in] | distCoeffs | : Input vector of distortion coefficients of 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are assumed. |
[in] | u | : input coordinate in pixels along image horizontal axis. |
[in] | v | : input coordinate in pixels along image vertical axis. |
[out] | x | : output coordinate in meter along image plane x-axis. |
[out] | y | : output coordinate in meter along image plane y-axis. |
Definition at line 225 of file vpPixelMeterConversion.cpp.
|
static |
Point coordinates conversion from pixel coordinates to normalized coordinates in meter using OpenCV camera parameters.
[in] | cameraMatrix | : Camera Matrix |
[in] | distCoeffs | : Input vector of distortion coefficients of 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are assumed. |
[in] | iP | : input coordinates in pixels. |
[out] | x | : output coordinate in meter along image plane x-axis. |
[out] | y | : output coordinate in meter along image plane y-axis. |
Definition at line 249 of file vpPixelMeterConversion.cpp.
References vpImagePoint::get_u(), and vpImagePoint::get_v().