cv::multicalib::MultiCameraCalibration Class Reference 用于 3D 重建的自定义校准模式


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. 更多...

#include <opencv2/ccalib/multicalib.hpp>

struct   edge
 
struct   vertex
 

公共类型

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)
 

详细描述

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
枚举器
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 ")  
)

成员函数文档编制

◆  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: