Class cv::multicalib::MultiCameraCalibration#
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. View details
#include <opencv2/ccalib/multicalib.hpp>Collaboration diagram for cv::multicalib::MultiCameraCalibration:
Public Types#
enum cv::multicalib::MultiCameraCalibration {
cv::multicalib::PINHOLE,
cv::multicalib::OMNIDIRECTIONAL
}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#
enum MultiCameraCalibration
|
|
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 = 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”) )
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)
compose_motion()#
void cv::multicalib::MultiCameraCalibration::compose_motion(
InputArray _om1,
InputArray _T1,
InputArray _om2,
InputArray _T2,
Mat & om3,
Mat & T3,
Mat & dom3dom1,
Mat & dom3dT1,
Mat & dom3dom2,
Mat & dom3dT2,
Mat & dT3dom1,
Mat & dT3dT1,
Mat & dT3dom2,
Mat & dT3dT2 )
computeJacobianExtrinsic()#
void cv::multicalib::MultiCameraCalibration::computeJacobianExtrinsic(
const Mat & extrinsicParams,
Mat & JTJ_inv,
Mat & JTE )
computePhotoCameraJacobian()#
void cv::multicalib::MultiCameraCalibration::computePhotoCameraJacobian(
const Mat & rvecPhoto,
const Mat & tvecPhoto,
const Mat & rvecCamera,
const Mat & tvecCamera,
Mat & rvecTran,
Mat & tvecTran,
const Mat & objectPoints,
const Mat & imagePoints,
const Mat & K,
const Mat & distort,
const Mat & xi,
Mat & jacobianPhoto,
Mat & jacobianCamera,
Mat & E )
computeProjectError()#
double cv::multicalib::MultiCameraCalibration::computeProjectError(Mat & parameters)
dAB()#
void cv::multicalib::MultiCameraCalibration::dAB(
InputArray A,
InputArray B,
OutputArray dABdA,
OutputArray dABdB )
findRowNonZero()#
void cv::multicalib::MultiCameraCalibration::findRowNonZero(
const Mat & row,
Mat & idx )
getPhotoVertex()#
int cv::multicalib::MultiCameraCalibration::getPhotoVertex(int timestamp)
graphTraverse()#
void cv::multicalib::MultiCameraCalibration::graphTraverse(
const Mat & G,
int begin,
std::vector< int > & order,
std::vector< int > & pre )
JRodriguesMatlab()#
void cv::multicalib::MultiCameraCalibration::JRodriguesMatlab(
const Mat & src,
Mat & dst )
parameters2vector()#
void cv::multicalib::MultiCameraCalibration::parameters2vector(
const std::vector< Vec3f > & rvecVertex,
const std::vector< Vec3f > & tvecVertex,
Mat & parameters )
readStringList()#
std::vector< std::string > cv::multicalib::MultiCameraCalibration::readStringList()
vector2parameters()#
void cv::multicalib::MultiCameraCalibration::vector2parameters(
const Mat & parameters,
std::vector< Vec3f > & rvecVertex,
std::vector< Vec3f > & tvecVertexs )
Member Data Documentation#
_cameraMatrix#
std::vector< cv::Mat > cv::multicalib::MultiCameraCalibration::_cameraMatrix
_camType#
int cv::multicalib::MultiCameraCalibration::_camType
_criteria#
TermCriteria cv::multicalib::MultiCameraCalibration::_criteria
_descriptor#
Ptr< DescriptorExtractor > cv::multicalib::MultiCameraCalibration::_descriptor
_detector#
Ptr< FeatureDetector > cv::multicalib::MultiCameraCalibration::_detector
_distortCoeffs#
std::vector< cv::Mat > cv::multicalib::MultiCameraCalibration::_distortCoeffs
_edgeList#
std::vector< edge > cv::multicalib::MultiCameraCalibration::_edgeList
_error#
double cv::multicalib::MultiCameraCalibration::_error
_filename#
std::string cv::multicalib::MultiCameraCalibration::_filename
_flags#
int cv::multicalib::MultiCameraCalibration::_flags
_imagePointsForEachCamera#
std::vector< std::vector< cv::Mat > > cv::multicalib::MultiCameraCalibration::_imagePointsForEachCamera
_matcher#
Ptr< DescriptorMatcher > cv::multicalib::MultiCameraCalibration::_matcher
_nCamera#
int cv::multicalib::MultiCameraCalibration::_nCamera
_nMiniMatches#
int cv::multicalib::MultiCameraCalibration::_nMiniMatches
_objectPointsForEachCamera#
std::vector< std::vector< cv::Mat > > cv::multicalib::MultiCameraCalibration::_objectPointsForEachCamera
_omEachCamera#
std::vector< std::vector< Mat > > cv::multicalib::MultiCameraCalibration::_omEachCamera
_patternHeight#
float cv::multicalib::MultiCameraCalibration::_patternHeight
_patternWidth#
float cv::multicalib::MultiCameraCalibration::_patternWidth
_showExtraction#
int cv::multicalib::MultiCameraCalibration::_showExtraction
_tEachCamera#
std::vector< std::vector< Mat > > cv::multicalib::MultiCameraCalibration::_tEachCamera
_verbose#
int cv::multicalib::MultiCameraCalibration::_verbose
_vertexList#
std::vector< vertex > cv::multicalib::MultiCameraCalibration::_vertexList
_xi#
std::vector< cv::Mat > cv::multicalib::MultiCameraCalibration::_xi
Source file#
The documentation for this class was generated from the following file:
opencv2/ccalib/multicalib.hpp