|
|
|
#ifndef FISHEYE_INTERNAL_H
|
|
|
|
#define FISHEYE_INTERNAL_H
|
|
|
|
|
|
|
|
namespace cv { namespace internal {
|
|
|
|
|
|
|
|
struct IntrinsicParams
|
|
|
|
{
|
|
|
|
Vec2d f;
|
|
|
|
Vec2d c;
|
|
|
|
Vec4d k;
|
|
|
|
double alpha;
|
|
|
|
std::vector<int> isEstimate;
|
|
|
|
|
|
|
|
IntrinsicParams();
|
|
|
|
IntrinsicParams(Vec2d f, Vec2d c, Vec4d k, double alpha = 0);
|
|
|
|
IntrinsicParams operator+(const Mat& a);
|
|
|
|
IntrinsicParams& operator =(const Mat& a);
|
|
|
|
void Init(const cv::Vec2d& f, const cv::Vec2d& c, const cv::Vec4d& k = Vec4d(0,0,0,0), const double& alpha = 0);
|
|
|
|
};
|
|
|
|
|
|
|
|
void projectPoints(cv::InputArray objectPoints, cv::OutputArray imagePoints,
|
|
|
|
cv::InputArray _rvec,cv::InputArray _tvec,
|
|
|
|
const IntrinsicParams& param, cv::OutputArray jacobian);
|
|
|
|
|
|
|
|
void ComputeExtrinsicRefine(const Mat& imagePoints, const Mat& objectPoints, Mat& rvec,
|
|
|
|
Mat& tvec, Mat& J, const int MaxIter,
|
|
|
|
const IntrinsicParams& param, const double thresh_cond);
|
|
|
|
Mat ComputeHomography(Mat m, Mat M);
|
|
|
|
|
|
|
|
Mat NormalizePixels(const Mat& imagePoints, const IntrinsicParams& param);
|
|
|
|
|
|
|
|
void InitExtrinsics(const Mat& _imagePoints, const Mat& _objectPoints, const IntrinsicParams& param, Mat& omckk, Mat& Tckk);
|
|
|
|
|
|
|
|
void CalibrateExtrinsics(InputArrayOfArrays objectPoints, InputArrayOfArrays imagePoints,
|
|
|
|
const IntrinsicParams& param, const int check_cond,
|
|
|
|
const double thresh_cond, InputOutputArray omc, InputOutputArray Tc);
|
|
|
|
|
|
|
|
void ComputeJacobians(InputArrayOfArrays objectPoints, InputArrayOfArrays imagePoints,
|
|
|
|
const IntrinsicParams& param, InputArray omc, InputArray Tc,
|
|
|
|
const int& check_cond, const double& thresh_cond, Mat& JJ2_inv, Mat& ex3);
|
|
|
|
|
|
|
|
void EstimateUncertainties(InputArrayOfArrays objectPoints, InputArrayOfArrays imagePoints,
|
|
|
|
const IntrinsicParams& params, InputArray omc, InputArray Tc,
|
|
|
|
IntrinsicParams& errors, Vec2d& std_err, double thresh_cond, int check_cond, double& rms);
|
|
|
|
|
|
|
|
void dAB(cv::InputArray A, InputArray B, OutputArray dABdA, OutputArray dABdB);
|
|
|
|
|
|
|
|
void JRodriguesMatlab(const Mat& src, Mat& dst);
|
|
|
|
|
|
|
|
void 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);
|
|
|
|
|
|
|
|
double median(const Mat& row);
|
|
|
|
|
|
|
|
Vec3d median3d(InputArray m);
|
|
|
|
|
|
|
|
}}
|
|
|
|
|
|
|
|
#endif
|