1 #ifndef FISHEYE_INTERNAL_H 2 #define FISHEYE_INTERNAL_H 3 #include "precomp.hpp" 4 5 namespace cv { namespace internal { 6 7 struct CV_EXPORTS IntrinsicParams 8 { 9 Vec2d f; 10 Vec2d c; 11 Vec4d k; 12 double alpha; 13 std::vector<int> isEstimate; 14 15 IntrinsicParams(); 16 IntrinsicParams(Vec2d f, Vec2d c, Vec4d k, double alpha = 0); 17 IntrinsicParams operator+(const Mat& a); 18 IntrinsicParams& operator =(const Mat& a); 19 void Init(const cv::Vec2d& f, const cv::Vec2d& c, const cv::Vec4d& k = Vec4d(0,0,0,0), const double& alpha = 0); 20 }; 21 22 void projectPoints(cv::InputArray objectPoints, cv::OutputArray imagePoints, 23 cv::InputArray _rvec,cv::InputArray _tvec, 24 const IntrinsicParams& param, cv::OutputArray jacobian); 25 26 void ComputeExtrinsicRefine(const Mat& imagePoints, const Mat& objectPoints, Mat& rvec, 27 Mat& tvec, Mat& J, const int MaxIter, 28 const IntrinsicParams& param, const double thresh_cond); 29 CV_EXPORTS Mat ComputeHomography(Mat m, Mat M); 30 31 CV_EXPORTS Mat NormalizePixels(const Mat& imagePoints, const IntrinsicParams& param); 32 33 void InitExtrinsics(const Mat& _imagePoints, const Mat& _objectPoints, const IntrinsicParams& param, Mat& omckk, Mat& Tckk); 34 35 void CalibrateExtrinsics(InputArrayOfArrays objectPoints, InputArrayOfArrays imagePoints, 36 const IntrinsicParams& param, const int check_cond, 37 const double thresh_cond, InputOutputArray omc, InputOutputArray Tc); 38 39 void ComputeJacobians(InputArrayOfArrays objectPoints, InputArrayOfArrays imagePoints, 40 const IntrinsicParams& param, InputArray omc, InputArray Tc, 41 const int& check_cond, const double& thresh_cond, Mat& JJ2_inv, Mat& ex3); 42 43 CV_EXPORTS void EstimateUncertainties(InputArrayOfArrays objectPoints, InputArrayOfArrays imagePoints, 44 const IntrinsicParams& params, InputArray omc, InputArray Tc, 45 IntrinsicParams& errors, Vec2d& std_err, double thresh_cond, int check_cond, double& rms); 46 47 void dAB(cv::InputArray A, InputArray B, OutputArray dABdA, OutputArray dABdB); 48 49 void JRodriguesMatlab(const Mat& src, Mat& dst); 50 51 void compose_motion(InputArray _om1, InputArray _T1, InputArray _om2, InputArray _T2, 52 Mat& om3, Mat& T3, Mat& dom3dom1, Mat& dom3dT1, Mat& dom3dom2, 53 Mat& dom3dT2, Mat& dT3dom1, Mat& dT3dT1, Mat& dT3dom2, Mat& dT3dT2); 54 55 double median(const Mat& row); 56 57 Vec3d median3d(InputArray m); 58 59 }} 60 61 #endif 62