OpenCV
5.0.0alpha
Open Source Computer Vision
|
Class for multiple camera calibration that supports pinhole camera and omnidirection camera. For omnidirectional camera model, please refer to omnidir.hpp in ccalib module. It first calibrate each camera individually, then a bundle adjustment like optimization is applied to refine extrinsic parameters. So far, it only support "random" pattern for calibration, see randomPattern.hpp in ccalib module for details. Images that are used should be named by "cameraIdx-timestamp.*", several images with the same timestamp means that they are the same pattern that are photographed. cameraIdx should start from 0. More...
#include <opencv2/ccalib/multicalib.hpp>
Classes | |
struct | edge |
struct | vertex |
Public Types | |
enum | { PINHOLE , OMNIDIRECTIONAL } |
Public Member Functions | |
MultiCameraCalibration (int cameraType, int nCameras, const std::string &fileName, float patternWidth, float patternHeight, int verbose=0, int showExtration=0, int nMiniMatches=20, int flags=0, TermCriteria criteria=TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 200, 1e-7), Ptr< FeatureDetector > detector=xfeatures2d::AKAZE::create(xfeatures2d::AKAZE::DESCRIPTOR_MLDB, 0, 3, 0.006f), Ptr< DescriptorExtractor > descriptor=xfeatures2d::AKAZE::create(xfeatures2d::AKAZE::DESCRIPTOR_MLDB, 0, 3, 0.006f), Ptr< DescriptorMatcher > matcher=DescriptorMatcher::create("BruteForce-L1")) | |
void | initialize () |
void | loadImages () |
double | optimizeExtrinsics () |
double | run () |
void | writeParameters (const std::string &filename) |
Class for multiple camera calibration that supports pinhole camera and omnidirection camera. For omnidirectional camera model, please refer to omnidir.hpp in ccalib module. It first calibrate each camera individually, then a bundle adjustment like optimization is applied to refine extrinsic parameters. So far, it only support "random" pattern for calibration, see randomPattern.hpp in ccalib module for details. Images that are used should be named by "cameraIdx-timestamp.*", several images with the same timestamp means that they are the same pattern that are photographed. cameraIdx should start from 0.
For more details, please refer to paper B. Li, L. Heng, K. Kevin and M. Pollefeys, "A Multiple-Camera System Calibration Toolbox Using A Feature Descriptor-Based Calibration Pattern", in IROS 2013.
cv::multicalib::MultiCameraCalibration::MultiCameraCalibration | ( | int | cameraType, |
int | nCameras, | ||
const std::string & | fileName, | ||
float | patternWidth, | ||
float | patternHeight, | ||
int | verbose = 0, | ||
int | showExtration = 0, | ||
int | nMiniMatches = 20, | ||
int | flags = 0, | ||
TermCriteria | criteria = TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 200, 1e-7), | ||
Ptr< FeatureDetector > | detector = xfeatures2d::AKAZE::create(xfeatures2d::AKAZE::DESCRIPTOR_MLDB, 0, 3, 0.006f), | ||
Ptr< DescriptorExtractor > | descriptor = xfeatures2d::AKAZE::create(xfeatures2d::AKAZE::DESCRIPTOR_MLDB, 0, 3, 0.006f), | ||
Ptr< DescriptorMatcher > | matcher = DescriptorMatcher::create("BruteForce-L1") ) |
void cv::multicalib::MultiCameraCalibration::initialize | ( | ) |
void cv::multicalib::MultiCameraCalibration::loadImages | ( | ) |
double cv::multicalib::MultiCameraCalibration::optimizeExtrinsics | ( | ) |
double cv::multicalib::MultiCameraCalibration::run | ( | ) |
void cv::multicalib::MultiCameraCalibration::writeParameters | ( | const std::string & | filename | ) |