namespace cv::fisheye

The methods in this namespace use a so-called fisheye camera model.

namespace fisheye {

// enums

enum
{
    CALIB_USE_INTRINSIC_GUESS = 1 <<0,
    CALIB_RECOMPUTE_EXTRINSIC = 1 <<1,
    CALIB_CHECK_COND          = 1 <<2,
    CALIB_FIX_SKEW            = 1 <<3,
    CALIB_FIX_K1              = 1 <<4,
    CALIB_FIX_K2              = 1 <<5,
    CALIB_FIX_K3              = 1 <<6,
    CALIB_FIX_K4              = 1 <<7,
    CALIB_FIX_INTRINSIC       = 1 <<8,
    CALIB_FIX_PRINCIPAL_POINT = 1 <<9,
};

// global functions

double
calibrate(
    InputArrayOfArrays objectPoints,
    InputArrayOfArrays imagePoints,
    const Size& image_size,
    InputOutputArray K,
    InputOutputArray D,
    OutputArrayOfArrays rvecs,
    OutputArrayOfArrays tvecs,
    int flags = 0,
    TermCriteria criteria = TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 100, DBL_EPSILON)
    );

void
distortPoints(
    InputArray undistorted,
    OutputArray distorted,
    InputArray K,
    InputArray D,
    double alpha = 0
    );

void
estimateNewCameraMatrixForUndistortRectify(
    InputArray K,
    InputArray D,
    const Size& image_size,
    InputArray R,
    OutputArray P,
    double balance = 0.0,
    const Size& new_size = Size(),
    double fov_scale = 1.0
    );

void
initUndistortRectifyMap(
    InputArray K,
    InputArray D,
    InputArray R,
    InputArray P,
    const cv::Size& size,
    int m1type,
    OutputArray map1,
    OutputArray map2
    );

void
projectPoints(
    InputArray objectPoints,
    OutputArray imagePoints,
    const Affine3d& affine,
    InputArray K,
    InputArray D,
    double alpha = 0,
    OutputArray jacobian = noArray()
    );

void
projectPoints(
    InputArray objectPoints,
    OutputArray imagePoints,
    InputArray rvec,
    InputArray tvec,
    InputArray K,
    InputArray D,
    double alpha = 0,
    OutputArray jacobian = noArray()
    );

double
stereoCalibrate(
    InputArrayOfArrays objectPoints,
    InputArrayOfArrays imagePoints1,
    InputArrayOfArrays imagePoints2,
    InputOutputArray K1,
    InputOutputArray D1,
    InputOutputArray K2,
    InputOutputArray D2,
    Size imageSize,
    OutputArray R,
    OutputArray T,
    int flags = fisheye::CALIB_FIX_INTRINSIC,
    TermCriteria criteria = TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 100, DBL_EPSILON)
    );

void
stereoRectify(
    InputArray K1,
    InputArray D1,
    InputArray K2,
    InputArray D2,
    const Size& imageSize,
    InputArray R,
    InputArray tvec,
    OutputArray R1,
    OutputArray R2,
    OutputArray P1,
    OutputArray P2,
    OutputArray Q,
    int flags,
    const Size& newImageSize = Size(),
    double balance = 0.0,
    double fov_scale = 1.0
    );

void
undistortImage(
    InputArray distorted,
    OutputArray undistorted,
    InputArray K,
    InputArray D,
    InputArray Knew = cv::noArray(),
    const Size& new_size = Size()
    );

void
undistortPoints(
    InputArray distorted,
    OutputArray undistorted,
    InputArray K,
    InputArray D,
    InputArray R = noArray(),
    InputArray P = noArray()
    );

} // namespace fisheye