namespace mrpt::vision::pinholeΒΆ

Functions related to pinhole camera models, point projections, etc.

mrpt_vision_grp

namespace pinhole {

// global functions

void 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::img::TPixelCoordf>& projectedPoints,
    bool accept_points_behind = false
    );

template <bool INVERSE_CAM_POSE>
mrpt::img::TPixelCoordf projectPoint_no_distortion(const mrpt::img::TCamera& cam_params, const mrpt::poses::CPose3D& F, const mrpt::math::TPoint3D& P);

template <typename POINT>
void projectPoint_no_distortion(
    const POINT& in_point_wrt_cam,
    const mrpt::img::TCamera& cam_params,
    mrpt::img::TPixelCoordf& out_projectedPoints
    );

void 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::img::TPixelCoordf>& projectedPoints,
    bool accept_points_behind = false
    );

void projectPoint_with_distortion(
    const mrpt::math::TPoint3D& in_point_wrt_cam,
    const mrpt::img::TCamera& in_cam_params,
    mrpt::img::TPixelCoordf& out_projectedPoints,
    bool accept_points_behind = false
    );

void projectPoints_with_distortion(
    const std::vector<mrpt::math::TPoint3D>& P,
    const mrpt::img::TCamera& params,
    const mrpt::poses::CPose3DQuat& cameraPose,
    std::vector<mrpt::img::TPixelCoordf>& pixels,
    bool accept_points_behind = false
    );

void undistort_points(
    const std::vector<mrpt::img::TPixelCoordf>& srcDistortedPixels,
    std::vector<mrpt::img::TPixelCoordf>& dstUndistortedPixels,
    const mrpt::math::CMatrixDouble33& intrinsicParams,
    const std::vector<double>& distortionParams
    );

void undistort_points(
    const std::vector<mrpt::img::TPixelCoordf>& srcDistortedPixels,
    std::vector<mrpt::img::TPixelCoordf>& dstUndistortedPixels,
    const mrpt::img::TCamera& cameraModel
    );

void undistort_point(const mrpt::img::TPixelCoordf& inPt, mrpt::img::TPixelCoordf& outPt, const mrpt::img::TCamera& cameraModel);

} // namespace pinhole