10 #ifndef mrpt_vision_pinhole_H 11 #define mrpt_vision_pinhole_H 39 const std::vector<mrpt::math::TPoint3D> &in_points_3D,
42 std::vector<mrpt::utils::TPixelCoordf> &projectedPoints,
43 bool accept_points_behind =
false 51 template <
bool INVERSE_CAM_POSE>
65 cam_params.
cx() + cam_params.
fx() *
x/
z,
66 cam_params.
cy() + cam_params.
fy() *
y/
z );
70 template <
typename POINT>
72 const POINT &in_point_wrt_cam,
78 out_projectedPoints.
x = cam_params.
cx() + cam_params.
fx() * in_point_wrt_cam.x/in_point_wrt_cam.z;
79 out_projectedPoints.
y = cam_params.
cy() + cam_params.
fy() * in_point_wrt_cam.y/in_point_wrt_cam.z;
96 const std::vector<mrpt::math::TPoint3D> &in_points_3D,
99 const std::vector<double> & distortionParams,
100 std::vector<mrpt::utils::TPixelCoordf> &projectedPoints,
101 bool accept_points_behind =
false 118 bool accept_points_behind =
false 123 const std::vector<mrpt::math::TPoint3D> &P,
126 std::vector<mrpt::utils::TPixelCoordf> &
pixels,
127 bool accept_points_behind =
false 139 const std::vector<mrpt::utils::TPixelCoordf> &srcDistortedPixels,
140 std::vector<mrpt::utils::TPixelCoordf> &dstUndistortedPixels,
142 const std::vector<double> & distortionParams );
151 const std::vector<mrpt::utils::TPixelCoordf> &srcDistortedPixels,
152 std::vector<mrpt::utils::TPixelCoordf> &dstUndistortedPixels,
A pair (x,y) of pixel coordinates (subpixel resolution).
double cy() const
Get the value of the principal point y-coordinate (in pixels).
void VISION_IMPEXP projectPoints_with_distortion(const std::vector< mrpt::math::TPoint3D > &in_points_3D, const mrpt::poses::CPose3D &cameraPose, const mrpt::math::CMatrixDouble33 &intrinsicParams, const std::vector< double > &distortionParams, std::vector< mrpt::utils::TPixelCoordf > &projectedPoints, bool accept_points_behind=false)
Project a set of 3D points into a camera at an arbitrary 6D pose using its calibration matrix and dis...
double z
X,Y,Z coordinates.
double fx() const
Get the value of the focal length x-value (in pixels).
double fy() const
Get the value of the focal length y-value (in pixels).
void composePoint(double lx, double ly, double lz, double &gx, double &gy, double &gz, mrpt::math::CMatrixFixedNumeric< double, 3, 3 > *out_jacobian_df_dpoint=NULL, mrpt::math::CMatrixFixedNumeric< double, 3, 6 > *out_jacobian_df_dpose=NULL, mrpt::math::CMatrixFixedNumeric< double, 3, 6 > *out_jacobian_df_dse3=NULL, bool use_small_rot_approx=false) const
An alternative, slightly more efficient way of doing with G and L being 3D points and P this 6D pose...
mrpt::utils::TPixelCoordf projectPoint_no_distortion(const mrpt::utils::TCamera &cam_params, const mrpt::poses::CPose3D &F, const mrpt::math::TPoint3D &P)
Project a single 3D point with global coordinates P into a camera at pose F, without distortion param...
void VISION_IMPEXP projectPoints_no_distortion(const std::vector< mrpt::math::TPoint3D > &in_points_3D, const mrpt::poses::CPose3D &cameraPose, const mrpt::math::CMatrixDouble33 &intrinsicParams, std::vector< mrpt::utils::TPixelCoordf > &projectedPoints, bool accept_points_behind=false)
Project a set of 3D points into a camera at an arbitrary 6D pose using its calibration matrix (undist...
A class used to store a 3D pose as a translation (x,y,z) and a quaternion (qr,qx,qy,qz).
GLint GLint GLsizei GLsizei GLsizei GLint GLenum GLenum const GLvoid * pixels
double cx() const
Get the value of the principal point x-coordinate (in pixels).
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
void inverseComposePoint(const double gx, const double gy, const double gz, double &lx, double &ly, double &lz, mrpt::math::CMatrixFixedNumeric< double, 3, 3 > *out_jacobian_df_dpoint=NULL, mrpt::math::CMatrixFixedNumeric< double, 3, 6 > *out_jacobian_df_dpose=NULL, mrpt::math::CMatrixFixedNumeric< double, 3, 6 > *out_jacobian_df_dse3=NULL) const
Computes the 3D point L such as .
void VISION_IMPEXP projectPoint_with_distortion(const mrpt::math::TPoint3D &in_point_wrt_cam, const mrpt::utils::TCamera &in_cam_params, mrpt::utils::TPixelCoordf &out_projectedPoints, bool accept_points_behind=false)
Project one 3D point into a camera using its calibration matrix and distortion parameters (radial and...
void VISION_IMPEXP undistort_point(const mrpt::utils::TPixelCoordf &inPt, mrpt::utils::TPixelCoordf &outPt, const mrpt::utils::TCamera &cameraModel)
Undistort one point given by its pixel coordinates and the camera parameters.
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
void VISION_IMPEXP undistort_points(const std::vector< mrpt::utils::TPixelCoordf > &srcDistortedPixels, std::vector< mrpt::utils::TPixelCoordf > &dstUndistortedPixels, const mrpt::math::CMatrixDouble33 &intrinsicParams, const std::vector< double > &distortionParams)
Undistort a list of points given by their pixel coordinates, provided the camera matrix and distortio...
GLenum const GLfloat * params
Structure to hold the parameters of a pinhole camera model.