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=AKAZE::create(AKAZE::DESCRIPTOR_MLDB, 0, 3, 0.006f), Ptr< DescriptorExtractor > descriptor=AKAZE::create(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) |
Detailed Description
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.
Member Enumeration Documentation
◆ anonymous enum
Constructor & Destructor Documentation
◆ MultiCameraCalibration()
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 = AKAZE::create(AKAZE::DESCRIPTOR_MLDB, 0, 3, 0.006f) , |
||
Ptr< DescriptorExtractor > | descriptor = AKAZE::create(AKAZE::DESCRIPTOR_MLDB, 0, 3, 0.006f) , |
||
Ptr< DescriptorMatcher > | matcher = DescriptorMatcher::create("BruteForce-L1") |
||
) |
Member Function Documentation
◆ initialize()
void cv::multicalib::MultiCameraCalibration::initialize | ( | ) |
◆ loadImages()
void cv::multicalib::MultiCameraCalibration::loadImages | ( | ) |
◆ optimizeExtrinsics()
double cv::multicalib::MultiCameraCalibration::optimizeExtrinsics | ( | ) |
◆ run()
double cv::multicalib::MultiCameraCalibration::run | ( | ) |
◆ writeParameters()
void cv::multicalib::MultiCameraCalibration::writeParameters | ( | const std::string & | filename | ) |
The documentation for this class was generated from the following file:
- opencv2/ccalib/multicalib.hpp