struct mrpt::vision::TStereoCalibParams

Input parameters for mrpt::vision::checkerBoardStereoCalibration.

#include <mrpt/vision/chessboard_stereo_camera_calib.h>

struct TStereoCalibParams
{
    //
fields

    unsigned int check_size_x {7};
    unsigned int check_size_y {9};
    double check_squares_length_X_meters {0.02};
    double check_squares_length_Y_meters {0.02};
    bool normalize_image {true};
    bool skipDrawDetectedImgs {false};
    bool verbose {true};
    size_t maxIters {2000};
    bool optimize_k1 {true};
    bool optimize_k2 {true};
    bool optimize_k3 {false};
    bool optimize_t1 {false};
    bool optimize_t2 {false};
    bool use_robust_kernel {false};
    double robust_kernel_param {10};
    TSteroCalibCallbackFunctor callback {nullptr};
    void* callback_user_param {nullptr};

    // construction

    TStereoCalibParams();
};

Fields

unsigned int check_size_x {7}

The number of squares in the checkerboard in the “X” & “Y” direction.

double check_squares_length_X_meters {0.02}

The size of each square in the checkerboard, in meters, in the “X” & Y” axes.

bool verbose {true}

Show progress messages to std::cout console (default=true)

size_t maxIters {2000}

Maximum number of iterations of the optimizer (default=300)

bool optimize_k1 {true}

Select which distortion parameters (of both left/right cameras) will be optimzed: k1,k2,k3 are the r^2, r^4 and r^6 radial distorion coeficients, and t1 and t2 are the tangential distortion coeficients (see mrpt::img::TCamera).

Those set to false will be assumed to be fixed to zero (no distortion). Default values are to only assume distortion via k1 and k2 (the rest are zeros).

bool use_robust_kernel {false}

Employ a Pseudo-Huber robustifier kernel (Default: false)

double robust_kernel_param {10}

The parameter of the robust kernel, in pixels (only if use_robust_kernel=true) (Default=10)

TSteroCalibCallbackFunctor callback {nullptr}

If set to !=NULL, this function will be called within each Lev-Marq.

iteration (don’t do heavy stuff here since performance will degrade)

void* callback_user_param {nullptr}

If using a callback function, you can use this to pass custom data to your callback.