OpenCV  3.1.0
Open Source Computer Vision
Classes | Public Types | Public Member Functions | List of all members
cv::multicalib::MultiCameraCalibration Class Reference

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 "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.

Constructor & Destructor Documentation

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

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)

The documentation for this class was generated from the following file: