42#ifndef __OPENCV_MULTICAMERACALIBRATION_HPP__
43#define __OPENCV_MULTICAMERACALIBRATION_HPP__
45#include "opencv2/ccalib/randpattern.hpp"
46#include "opencv2/ccalib/omnidir.hpp"
50namespace cv {
namespace multicalib {
133 float patternHeight,
int verbose = 0,
int showExtration = 0,
int nMiniMatches = 20,
int flags = 0,
149 double optimizeExtrinsics();
157 void writeParameters(
const std::string& filename);
160 std::vector<std::string> readStringList();
162 int getPhotoVertex(
int timestamp);
164 void graphTraverse(
const Mat& G,
int begin, std::vector<int>& order, std::vector<int>& pre);
166 void findRowNonZero(
const Mat& row,
Mat& idx);
168 void computeJacobianExtrinsic(
const Mat& extrinsicParams,
Mat& JTJ_inv,
Mat& JTE);
170 void computePhotoCameraJacobian(
const Mat& rvecPhoto,
const Mat& tvecPhoto,
const Mat& rvecCamera,
171 const Mat& tvecCamera,
Mat& rvecTran,
Mat& tvecTran,
const Mat& objectPoints,
const Mat& imagePoints,
const Mat& K,
172 const Mat& distort,
const Mat& xi,
Mat& jacobianPhoto,
Mat& jacobianCamera,
Mat& E);
174 void compose_motion(InputArray _om1, InputArray _T1, InputArray _om2, InputArray _T2,
Mat& om3,
Mat& T3,
Mat& dom3dom1,
177 void JRodriguesMatlab(
const Mat& src,
Mat& dst);
180 double computeProjectError(
Mat& parameters);
182 void vector2parameters(
const Mat& parameters, std::vector<Vec3f>& rvecVertex, std::vector<Vec3f>& tvecVertexs);
183 void parameters2vector(
const std::vector<Vec3f>& rvecVertex,
const std::vector<Vec3f>& tvecVertex,
Mat& parameters);
191 float _patternWidth, _patternHeight;
193 std::string _filename;
199 std::vector<edge> _edgeList;
200 std::vector<vertex> _vertexList;
201 std::vector<std::vector<cv::Mat> > _objectPointsForEachCamera;
202 std::vector<std::vector<cv::Mat> > _imagePointsForEachCamera;
203 std::vector<cv::Mat> _cameraMatrix;
204 std::vector<cv::Mat> _distortCoeffs;
205 std::vector<cv::Mat> _xi;
206 std::vector<std::vector<Mat> > _omEachCamera, _tEachCamera;
This type is very similar to InputArray except that it is used for input/output and output function p...
Definition: mat.hpp:295
static CV_WRAP Ptr< AKAZE > create(AKAZE::DescriptorType descriptor_type=AKAZE::DESCRIPTOR_MLDB, int descriptor_size=0, int descriptor_channels=3, float threshold=0.001f, int nOctaves=4, int nOctaveLayers=4, KAZE::DiffusivityType diffusivity=KAZE::DIFF_PM_G2)
The AKAZE constructor
static CV_WRAP Ptr< DescriptorMatcher > create(const String &descriptorMatcherType)
Creates a descriptor matcher of a given type with the default parameters (using default constructor).
n-dimensional dense array class
Definition: mat.hpp:802
static MatExpr eye(int rows, int cols, int type)
Returns an identity matrix of the specified size and type.
The class defining termination criteria for iterative algorithms.
Definition: core/types.hpp:853
@ EPS
the desired accuracy or change in parameters at which the iterative algorithm stops
Definition: core/types.hpp:862
@ COUNT
the maximum number of iterations or elements to compute
Definition: core/types.hpp:860
Class for multiple camera calibration that supports pinhole camera and omnidirection camera....
Definition: multicalib.hpp:73
CV_EXPORTS_W void transform(InputArray src, OutputArray dst, InputArray m)
Performs the matrix transformation of every array element.
"black box" representation of the file storage associated with a file on disk.
Definition: aruco.hpp:75
Definition: cvstd_wrapper.hpp:74
Definition: multicalib.hpp:83
Definition: multicalib.hpp:99