| OpenCV 4.3.0 Open Source Computer Vision

Classes | Public Types | Public Member Functions | List of all members
cv::multicalib::MultiCameraCalibration Class Reference
Custom Calibration Pattern for 3D reconstruction

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

anonymous enum

Enumerator
PINHOLE |
OMNIDIRECTIONAL |

## 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