Classes | |
struct | mrpt::vision::TImageCalibData |
Data associated to each image in the calibration process mrpt::vision::checkerBoardCameraCalibration (All the information can be left empty and will be filled up in the calibration method). More... | |
struct | mrpt::vision::TImageStereoCalibData |
Data associated to each stereo image in the calibration process mrpt::vision::checkerBoardCameraCalibration (All the information can be left empty and will be filled up in the calibration method). More... | |
struct | mrpt::vision::TImageStereoCallbackData |
Params of the optional callback provided by the user. More... | |
struct | mrpt::vision::TStereoCalibParams |
Input parameters for mrpt::vision::checkerBoardStereoCalibration. More... | |
struct | mrpt::vision::TStereoCalibResults |
Output results for mrpt::vision::checkerBoardStereoCalibration. More... | |
Typedefs | |
typedef std::map< std::string, TImageCalibData > | mrpt::vision::TCalibrationImageList |
A list of images, used in checkerBoardCameraCalibration. More... | |
typedef void(* | mrpt::vision::TSteroCalibCallbackFunctor) (const TImageStereoCallbackData &d, void *user_data) |
Prototype of optional user callback function. More... | |
typedef std::vector< TImageStereoCalibData > | mrpt::vision::TCalibrationStereoImageList |
A list of images, used in checkerBoardStereoCalibration. More... | |
Functions | |
bool VISION_IMPEXP | mrpt::vision::checkerBoardCameraCalibration (TCalibrationImageList &images, unsigned int check_size_x, unsigned int check_size_y, double check_squares_length_X_meters, double check_squares_length_Y_meters, mrpt::utils::TCamera &out_camera_params, bool normalize_image=true, double *out_MSE=NULL, bool skipDrawDetectedImgs=false, bool useScaramuzzaAlternativeDetector=false) |
Performs a camera calibration (computation of projection and distortion parameters) from a sequence of captured images of a checkerboard. More... | |
bool VISION_IMPEXP | mrpt::vision::checkerBoardCameraCalibration (TCalibrationImageList &images, unsigned int check_size_x, unsigned int check_size_y, double check_squares_length_X_meters, double check_squares_length_Y_meters, mrpt::math::CMatrixDouble33 &intrinsicParams, std::vector< double > &distortionParams, bool normalize_image=true, double *out_MSE=NULL, bool skipDrawDetectedImgs=false, bool useScaramuzzaAlternativeDetector=false) |
Performs a camera calibration (computation of projection and distortion parameters) from a sequence of captured images of a checkerboard. More... | |
bool VISION_IMPEXP | mrpt::vision::findChessboardCorners (const mrpt::utils::CImage &img, std::vector< mrpt::utils::TPixelCoordf > &cornerCoords, unsigned int check_size_x, unsigned int check_size_y, bool normalize_image=true, bool useScaramuzzaMethod=false) |
Look for the corners of a chessboard in the image using one of two different methods. More... | |
void VISION_IMPEXP | mrpt::vision::findMultipleChessboardsCorners (const mrpt::utils::CImage &img, std::vector< std::vector< mrpt::utils::TPixelCoordf > > &cornerCoords, unsigned int check_size_x, unsigned int check_size_y) |
Look for the corners of one or more chessboard/checkerboards in the image. More... | |
bool VISION_IMPEXP | mrpt::vision::checkerBoardStereoCalibration (TCalibrationStereoImageList &images, const TStereoCalibParams ¶ms, TStereoCalibResults &out_results) |
Optimize the calibration parameters of a stereo camera or a RGB+D (Kinect) camera. More... | |
typedef std::map<std::string,TImageCalibData> mrpt::vision::TCalibrationImageList |
A list of images, used in checkerBoardCameraCalibration.
Definition at line 46 of file chessboard_camera_calib.h.
typedef std::vector<TImageStereoCalibData> mrpt::vision::TCalibrationStereoImageList |
A list of images, used in checkerBoardStereoCalibration.
Definition at line 104 of file chessboard_stereo_camera_calib.h.
typedef void(* mrpt::vision::TSteroCalibCallbackFunctor) (const TImageStereoCallbackData &d, void *user_data) |
Prototype of optional user callback function.
Definition at line 47 of file chessboard_stereo_camera_calib.h.
bool mrpt::vision::checkerBoardCameraCalibration | ( | TCalibrationImageList & | images, |
unsigned int | check_size_x, | ||
unsigned int | check_size_y, | ||
double | check_squares_length_X_meters, | ||
double | check_squares_length_Y_meters, | ||
mrpt::utils::TCamera & | out_camera_params, | ||
bool | normalize_image = true , |
||
double * | out_MSE = NULL , |
||
bool | skipDrawDetectedImgs = false , |
||
bool | useScaramuzzaAlternativeDetector = false |
||
) |
Performs a camera calibration (computation of projection and distortion parameters) from a sequence of captured images of a checkerboard.
input_images | [IN/OUT] At input, this list must have one entry for each image to process. At output the original, detected checkboard and rectified images can be found here. See TImageCalibData. |
check_size_x | [IN] The number of squares in the checkerboard in the X direction. |
check_size_y | [IN] The number of squares in the checkerboard in the Y direction. |
check_squares_length_X_meters | [IN] The size of each square in the checkerboard, in meters, in the X axis. |
check_squares_length_Y_meters | [IN] This will typically be equal to check_squares_length_X_meters. |
intrinsicParams | [OUT] The 3x3 intrinsic parameters matrix. See http://www.mrpt.org/Camera_Parameters |
distortionParams | [OUT] The 1x4 vector of distortion parameters: k1 k2 p1 p2. See http://www.mrpt.org/Camera_Parameters |
normalize_image | [IN] Select OpenCV flag |
out_MSE | [OUT] If set to !=NULL, the mean square error of the reprojection will be stored here (in pixel units). |
skipDrawDetectedImgs | [IN] Whether to skip the generation of the undistorted and detected images in each TImageCalibData |
useScaramuzzaAlternativeDetector | [IN] Whether to use an alternative detector. See CImage::findChessboardCorners for more deatails and references. |
Definition at line 100 of file checkerboard_cam_calib.cpp.
References ASSERT_, mrpt::utils::CImage::colorImage(), mrpt::vision::TImageCalibData::detected_corners, mrpt::utils::TCamera::dist, mrpt::system::extractFileExtension(), mrpt::system::extractFileName(), mrpt::utils::FAST_REF_OR_CONVERT_TO_GRAY, mrpt::vision::findChessboardCorners(), mrpt::format(), mrpt::utils::CImage::getAs(), mrpt::utils::CConfigFileMemory::getContent(), mrpt::utils::TCamera::getDistortionParamsAsVector(), mrpt::utils::CImage::getHeight(), mrpt::utils::CImage::getWidth(), mrpt::vision::TImageCalibData::img_checkboard, mrpt::vision::TImageCalibData::img_original, mrpt::vision::TImageCalibData::img_rectified, mrpt::utils::TCamera::intrinsicParams, mrpt::utils::CImage::isExternallyStored(), mrpt::utils::CImage::loadFromFile(), MRPT_UNUSED_PARAM, cv::my_cv2eigen(), mrpt::utils::TCamera::ncols, mrpt::utils::TCamera::nrows, mrpt::vision::TImageCalibData::projectedPoints_distorted, mrpt::vision::TImageCalibData::projectedPoints_undistorted, mrpt::vision::pinhole::projectPoints_no_distortion(), mrpt::vision::pinhole::projectPoints_with_distortion(), mrpt::vision::TImageCalibData::reconstructed_camera_pose, mrpt::utils::CImage::rectifyImage(), mrpt::utils::TCamera::saveToConfigFile(), mrpt::math::square(), THROW_EXCEPTION, and THROW_EXCEPTION_FMT.
Referenced by mrpt::vision::checkerBoardCameraCalibration().
bool mrpt::vision::checkerBoardCameraCalibration | ( | TCalibrationImageList & | images, |
unsigned int | check_size_x, | ||
unsigned int | check_size_y, | ||
double | check_squares_length_X_meters, | ||
double | check_squares_length_Y_meters, | ||
mrpt::math::CMatrixDouble33 & | intrinsicParams, | ||
std::vector< double > & | distortionParams, | ||
bool | normalize_image = true , |
||
double * | out_MSE = NULL , |
||
bool | skipDrawDetectedImgs = false , |
||
bool | useScaramuzzaAlternativeDetector = false |
||
) |
Performs a camera calibration (computation of projection and distortion parameters) from a sequence of captured images of a checkerboard.
input_images | [IN/OUT] At input, this list must have one entry for each image to process. At output the original, detected checkboard and rectified images can be found here. See TImageCalibData. |
check_size_x | [IN] The number of squares in the checkerboard in the X direction. |
check_size_y | [IN] The number of squares in the checkerboard in the Y direction. |
check_squares_length_X_meters | [IN] The size of each square in the checkerboard, in meters, in the X axis. |
check_squares_length_Y_meters | [IN] This will typically be equal to check_squares_length_X_meters. |
intrinsicParams | [OUT] The 3x3 intrinsic parameters matrix. See http://www.mrpt.org/Camera_Parameters |
distortionParams | [OUT] The 1x4 vector of distortion parameters: k1 k2 p1 p2. See http://www.mrpt.org/Camera_Parameters |
normalize_image | [IN] Select OpenCV flag |
out_MSE | [OUT] If set to !=NULL, the mean square error of the reprojection will be stored here (in pixel units). |
skipDrawDetectedImgs | [IN] Whether to skip the generation of the undistorted and detected images in each TImageCalibData |
useScaramuzzaAlternativeDetector | [IN] Whether to use an alternative detector. See CImage::findChessboardCorners for more deatails and references. |
Definition at line 32 of file checkerboard_cam_calib.cpp.
References mrpt::vision::checkerBoardCameraCalibration(), mrpt::utils::TCamera::getDistortionParamsAsVector(), and mrpt::utils::TCamera::intrinsicParams.
bool mrpt::vision::checkerBoardStereoCalibration | ( | TCalibrationStereoImageList & | images, |
const TStereoCalibParams & | params, | ||
TStereoCalibResults & | out_results | ||
) |
Optimize the calibration parameters of a stereo camera or a RGB+D (Kinect) camera.
This computes the projection and distortion parameters of each camera, and their relative spatial pose, from a sequence of pairs of captured images of a checkerboard. A custom implementation of an optimizer (Levenberg-Marquartd) seeks for the set of selected parameters to estimate that minimize the reprojection errors.
input_images | [IN/OUT] At input, this list must have one entry for each image to process. At output the original, detected checkboard and rectified images can be found here. See TImageCalibData. |
params | [IN] Mandatory: the user must provide the size of the checkerboard, which parameters to optimize and which to leave fixed to zero, etc. |
out_results | [OUT] The results of the calibration, and its uncertainty measure, will be found here upon return. |
Definition at line 43 of file chessboard_stereo_camera_calib.cpp.
References mrpt::vision::add_lm_increment(), ASSERT_, ASSERT_EQUAL_, mrpt::vision::build_linear_system(), mrpt::vision::TImageStereoCallbackData::calibRound, mrpt::vision::TStereoCalibResults::cam_params, mrpt::utils::CImage::colorImage(), mrpt::vision::TImageStereoCallbackData::current_iter, mrpt::vision::TImageStereoCallbackData::current_rmse, mrpt::utils::TCamera::cx(), mrpt::utils::TCamera::cy(), mrpt::vision::TImageCalibData::detected_corners, mrpt::utils::CImage::drawChessboardCorners(), eps, mrpt::utils::FAST_REF_OR_CONVERT_TO_GRAY, mrpt::vision::TStereoCalibResults::final_iters, mrpt::vision::TStereoCalibResults::final_number_good_image_pairs, mrpt::vision::TStereoCalibResults::final_rmse, mrpt::vision::findChessboardCorners(), mrpt::format(), mrpt::utils::TCamera::fx(), mrpt::utils::TCamera::fy(), mrpt::utils::CImage::getHeight(), mrpt::utils::CImage::getSize(), mrpt::utils::CImage::getWidth(), mrpt::vision::TStereoCalibResults::image_pair_was_used, mrpt::vision::TImageCalibData::img_checkboard, mrpt::vision::TImageCalibData::img_original, mrpt::vision::TImageCalibData::img_rectified, mrpt::utils::CImage::isExternallyStored(), mrpt::utils::TCamera::k1(), mrpt::utils::TCamera::k2(), mrpt::utils::TCamera::k3(), mrpt::vision::lm_stat_t::left_cam_params, mrpt::vision::lm_stat_t::left_cam_poses, mrpt::vision::TStereoCalibResults::left_cam_poses, mrpt::vision::TStereoCalibResults::left_params_inv_variance, mrpt::utils::TStereoCamera::leftCamera, mrpt::utils::TCamera::ncols, mrpt::vision::TImageStereoCallbackData::nImgsProcessed, mrpt::vision::TImageStereoCallbackData::nImgsToProcess, mrpt::utils::TCamera::nrows, mrpt::utils::TCamera::p1(), mrpt::utils::TCamera::p2(), mrpt::vision::TImageCalibData::projectedPoints_distorted, mrpt::vision::pinhole::projectPoints_with_distortion(), mrpt::vision::recompute_errors_and_Jacobians(), mrpt::vision::TImageCalibData::reconstructed_camera_pose, mrpt::vision::TStereoCalibResults::right2left_camera_pose, mrpt::vision::lm_stat_t::right2left_pose, mrpt::vision::lm_stat_t::right_cam_params, mrpt::vision::TStereoCalibResults::right_params_inv_variance, mrpt::utils::TStereoCamera::rightCamera, mrpt::vision::lm_stat_t::swap(), mrpt::math::TPoint2D::x, mrpt::utils::TPixelCoord::x, mrpt::math::TPoint2D::y, and mrpt::utils::TPixelCoord::y.
bool mrpt::vision::findChessboardCorners | ( | const mrpt::utils::CImage & | in_img, |
std::vector< mrpt::utils::TPixelCoordf > & | cornerCoords, | ||
unsigned int | check_size_x, | ||
unsigned int | check_size_y, | ||
bool | normalize_image = true , |
||
bool | useScaramuzzaMethod = false |
||
) |
Look for the corners of a chessboard in the image using one of two different methods.
Look for the corners of a chessboard in the image.
The search algorithm will be OpenCV's function cvFindChessboardCorners or its improved version published by M. Rufli, D. Scaramuzza, and R. Siegwart. See: http://robotics.ethz.ch/~scaramuzza/Davide_Scaramuzza_files/Research/OcamCalib_Tutorial.htm and the papers:
After detecting the corners with either method, it's called "cvFindCornerSubPix" to achieve subpixel accuracy.
cornerCoords | [OUT] The pixel coordinates of all the corners. |
check_size_x | [IN] The number of squares, in the X direction |
check_size_y | [IN] The number of squares, in the Y direction |
normalize_image | [IN] Whether to normalize the image before detection |
useScaramuzzaMethod | [IN] Whether to use the alternative, more robust method by M. Rufli, D. Scaramuzza, and R. Siegwart. |
cornerCoords | [OUT] The pixel coordinates of all the corners. |
check_size_x | [IN] The number of squares, in the X direction |
check_size_y | [IN] The number of squares, in the Y direction |
normalize_image | [IN] Whether to normalize the image before detection |
useScaramuzzaMethod | [IN] Whether to use the alternative, more robust method by M. Rufli, D. Scaramuzza, and R. Siegwart. |
Definition at line 35 of file checkerboard_find_corners.cpp.
References ASSERT_, cvFindChessboardCorners3(), mrpt::utils::FAST_REF_OR_CONVERT_TO_GRAY, MRPT_END, and MRPT_START.
Referenced by mrpt::vision::checkerBoardCameraCalibration(), and mrpt::vision::checkerBoardStereoCalibration().
void mrpt::vision::findMultipleChessboardsCorners | ( | const mrpt::utils::CImage & | in_img, |
std::vector< std::vector< mrpt::utils::TPixelCoordf > > & | cornerCoords, | ||
unsigned int | check_size_x, | ||
unsigned int | check_size_y | ||
) |
Look for the corners of one or more chessboard/checkerboards in the image.
This method uses an improved version of OpenCV's cvFindChessboardCorners published by M. Rufli, D. Scaramuzza, and R. Siegwart. See: http://robotics.ethz.ch/~scaramuzza/Davide_Scaramuzza_files/Research/OcamCalib_Tutorial.htm and the papers:
That method has been extended in this MRPT implementation to automatically detect a number of different checkerboards in the same image.
cornerCoords | [OUT] A vector of N vectors of pixel coordinates, for each of the N chessboards detected. |
check_size_x | [IN] The number of squares, in the X direction |
check_size_y | [IN] The number of squares, in the Y direction |
This method uses an improved version of OpenCV's cvFindChessboardCorners published by M. Rufli, D. Scaramuzza, and R. Siegwart. That method has been extended in this MRPT implementation to automatically detect a number of different checkerboards in the same image.
cornerCoords | [OUT] A vector of N vectors of pixel coordinates, for each of the N chessboards detected. |
check_size_x | [IN] The number of squares, in the X direction |
check_size_y | [IN] The number of squares, in the Y direction |
Definition at line 144 of file checkerboard_find_corners.cpp.
References ASSERT_, begin(), mrpt::math::crossProduct3D(), mrpt::utils::FAST_REF_OR_CONVERT_TO_GRAY, find_chessboard_corners_multiple(), and push_back().
Page generated by Doxygen 1.8.14 for MRPT 1.5.7 Git: 5902e14cc Wed Apr 24 15:04:01 2019 +0200 at lun oct 28 01:39:17 CET 2019 |