|
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, 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< 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< 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...
|
|
bool VISION_IMPEXP mrpt::vision::findChessboardCorners |
( |
const mrpt::utils::CImage & |
img, |
|
|
std::vector< 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.
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:
- 1. Scaramuzza, D., Martinelli, A. and Siegwart, R. (2006), A Toolbox for Easily Calibrating Omnidirectional Cameras, Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2006), Beijing, China, October 2006.
- 2. Scaramuzza, D., Martinelli, A. and Siegwart, R., (2006). "A Flexible Technique for Accurate Omnidirectional Camera Calibration and Structure from Motion", Proceedings of IEEE International Conference of Vision Systems (ICVS'06), New York, January 5-7, 2006.
- 3. Rufli, M., Scaramuzza, D., and Siegwart, R. (2008), Automatic Detection of Checkerboards on Blurred and Distorted Images, Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2008), Nice, France, September 2008.
After detecting the corners with either method, it's called "cvFindCornerSubPix" to achieve subpixel accuracy.
- Parameters
-
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. |
- Returns
- true on success
- See also
- findMultipleChessboardsCorners, mrpt::vision::checkerBoardCameraCalibration, drawChessboardCorners
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:
- 1. Scaramuzza, D., Martinelli, A. and Siegwart, R. (2006), A Toolbox for Easily Calibrating Omnidirectional Cameras, Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2006), Beijing, China, October 2006.
- 2. Scaramuzza, D., Martinelli, A. and Siegwart, R., (2006). "A Flexible Technique for Accurate Omnidirectional Camera Calibration and Structure from Motion", Proceedings of IEEE International Conference of Vision Systems (ICVS'06), New York, January 5-7, 2006.
- 3. Rufli, M., Scaramuzza, D., and Siegwart, R. (2008), Automatic Detection of Checkerboards on Blurred and Distorted Images, Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2008), Nice, France, September 2008.
That method has been extended in this MRPT implementation to automatically detect a number of different checkerboards in the same image.
- Parameters
-
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 |
- See also
- mrpt::vision::checkerBoardCameraCalibration, drawChessboardCorners