//
// This file is auto-generated. Please don't modify it!
//
package org.opencv.calib3d;
import java.util.ArrayList;
import java.util.List;
import org.opencv.calib3d.UsacParams;
import org.opencv.core.Mat;
import org.opencv.core.MatOfDouble;
import org.opencv.core.MatOfPoint2f;
import org.opencv.core.MatOfPoint3f;
import org.opencv.core.Point;
import org.opencv.core.Rect;
import org.opencv.core.Scalar;
import org.opencv.core.Size;
import org.opencv.core.TermCriteria;
import org.opencv.utils.Converters;
// C++: class Calib3d
public class Calib3d {
// C++: enum <unnamed>
public static final int
CV_ITERATIVE = 0,
CV_EPNP = 1,
CV_P3P = 2,
CV_DLS = 3,
CvLevMarq_DONE = 0,
CvLevMarq_STARTED = 1,
CvLevMarq_CALC_J = 2,
CvLevMarq_CHECK_ERR = 3,
LMEDS = 4,
RANSAC = 8,
RHO = 16,
USAC_DEFAULT = 32,
USAC_PARALLEL = 33,
USAC_FM_8PTS = 34,
USAC_FAST = 35,
USAC_ACCURATE = 36,
USAC_PROSAC = 37,
USAC_MAGSAC = 38,
CALIB_CB_ADAPTIVE_THRESH = 1,
CALIB_CB_NORMALIZE_IMAGE = 2,
CALIB_CB_FILTER_QUADS = 4,
CALIB_CB_FAST_CHECK = 8,
CALIB_CB_EXHAUSTIVE = 16,
CALIB_CB_ACCURACY = 32,
CALIB_CB_LARGER = 64,
CALIB_CB_MARKER = 128,
CALIB_CB_SYMMETRIC_GRID = 1,
CALIB_CB_ASYMMETRIC_GRID = 2,
CALIB_CB_CLUSTERING = 4,
CALIB_NINTRINSIC = 18,
CALIB_USE_INTRINSIC_GUESS = 0x00001,
CALIB_FIX_ASPECT_RATIO = 0x00002,
CALIB_FIX_PRINCIPAL_POINT = 0x00004,
CALIB_ZERO_TANGENT_DIST = 0x00008,
CALIB_FIX_FOCAL_LENGTH = 0x00010,
CALIB_FIX_K1 = 0x00020,
CALIB_FIX_K2 = 0x00040,
CALIB_FIX_K3 = 0x00080,
CALIB_FIX_K4 = 0x00800,
CALIB_FIX_K5 = 0x01000,
CALIB_FIX_K6 = 0x02000,
CALIB_RATIONAL_MODEL = 0x04000,
CALIB_THIN_PRISM_MODEL = 0x08000,
CALIB_FIX_S1_S2_S3_S4 = 0x10000,
CALIB_TILTED_MODEL = 0x40000,
CALIB_FIX_TAUX_TAUY = 0x80000,
CALIB_USE_QR = 0x100000,
CALIB_FIX_TANGENT_DIST = 0x200000,
CALIB_FIX_INTRINSIC = 0x00100,
CALIB_SAME_FOCAL_LENGTH = 0x00200,
CALIB_ZERO_DISPARITY = 0x00400,
CALIB_USE_LU = (1 << 17),
CALIB_USE_EXTRINSIC_GUESS = (1 << 22),
FM_7POINT = 1,
FM_8POINT = 2,
FM_LMEDS = 4,
FM_RANSAC = 8,
fisheye_CALIB_USE_INTRINSIC_GUESS = 1 << 0,
fisheye_CALIB_RECOMPUTE_EXTRINSIC = 1 << 1,
fisheye_CALIB_CHECK_COND = 1 << 2,
fisheye_CALIB_FIX_SKEW = 1 << 3,
fisheye_CALIB_FIX_K1 = 1 << 4,
fisheye_CALIB_FIX_K2 = 1 << 5,
fisheye_CALIB_FIX_K3 = 1 << 6,
fisheye_CALIB_FIX_K4 = 1 << 7,
fisheye_CALIB_FIX_INTRINSIC = 1 << 8,
fisheye_CALIB_FIX_PRINCIPAL_POINT = 1 << 9,
fisheye_CALIB_ZERO_DISPARITY = 1 << 10,
fisheye_CALIB_FIX_FOCAL_LENGTH = 1 << 11;
// C++: enum GridType (cv.CirclesGridFinderParameters.GridType)
public static final int
CirclesGridFinderParameters_SYMMETRIC_GRID = 0,
CirclesGridFinderParameters_ASYMMETRIC_GRID = 1;
// C++: enum HandEyeCalibrationMethod (cv.HandEyeCalibrationMethod)
public static final int
CALIB_HAND_EYE_TSAI = 0,
CALIB_HAND_EYE_PARK = 1,
CALIB_HAND_EYE_HORAUD = 2,
CALIB_HAND_EYE_ANDREFF = 3,
CALIB_HAND_EYE_DANIILIDIS = 4;
// C++: enum LocalOptimMethod (cv.LocalOptimMethod)
public static final int
LOCAL_OPTIM_NULL = 0,
LOCAL_OPTIM_INNER_LO = 1,
LOCAL_OPTIM_INNER_AND_ITER_LO = 2,
LOCAL_OPTIM_GC = 3,
LOCAL_OPTIM_SIGMA = 4;
// C++: enum NeighborSearchMethod (cv.NeighborSearchMethod)
public static final int
NEIGH_FLANN_KNN = 0,
NEIGH_GRID = 1,
NEIGH_FLANN_RADIUS = 2;
// C++: enum RobotWorldHandEyeCalibrationMethod (cv.RobotWorldHandEyeCalibrationMethod)
public static final int
CALIB_ROBOT_WORLD_HAND_EYE_SHAH = 0,
CALIB_ROBOT_WORLD_HAND_EYE_LI = 1;
// C++: enum SamplingMethod (cv.SamplingMethod)
public static final int
SAMPLING_UNIFORM = 0,
SAMPLING_PROGRESSIVE_NAPSAC = 1,
SAMPLING_NAPSAC = 2,
SAMPLING_PROSAC = 3;
// C++: enum ScoreMethod (cv.ScoreMethod)
public static final int
SCORE_METHOD_RANSAC = 0,
SCORE_METHOD_MSAC = 1,
SCORE_METHOD_MAGSAC = 2,
SCORE_METHOD_LMEDS = 3;
// C++: enum SolvePnPMethod (cv.SolvePnPMethod)
public static final int
SOLVEPNP_ITERATIVE = 0,
SOLVEPNP_EPNP = 1,
SOLVEPNP_P3P = 2,
SOLVEPNP_DLS = 3,
SOLVEPNP_UPNP = 4,
SOLVEPNP_AP3P = 5,
SOLVEPNP_IPPE = 6,
SOLVEPNP_IPPE_SQUARE = 7,
SOLVEPNP_SQPNP = 8,
SOLVEPNP_MAX_COUNT = 8+1;
// C++: enum UndistortTypes (cv.UndistortTypes)
public static final int
PROJ_SPHERICAL_ORTHO = 0,
PROJ_SPHERICAL_EQRECT = 1;
//
// C++: void cv::Rodrigues(Mat src, Mat& dst, Mat& jacobian = Mat())
//
/**
* Converts a rotation matrix to a rotation vector or vice versa.
*
* @param src Input rotation vector (3x1 or 1x3) or rotation matrix (3x3).
* @param dst Output rotation matrix (3x3) or rotation vector (3x1 or 1x3), respectively.
* @param jacobian Optional output Jacobian matrix, 3x9 or 9x3, which is a matrix of partial
* derivatives of the output array components with respect to the input array components.
*
* \(\begin{array}{l} \theta \leftarrow norm(r) \\ r \leftarrow r/ \theta \\ R = \cos(\theta) I + (1- \cos{\theta} ) r r^T + \sin(\theta) \vecthreethree{0}{-r_z}{r_y}{r_z}{0}{-r_x}{-r_y}{r_x}{0} \end{array}\)
*
* Inverse transformation can be also done easily, since
*
* \(\sin ( \theta ) \vecthreethree{0}{-r_z}{r_y}{r_z}{0}{-r_x}{-r_y}{r_x}{0} = \frac{R - R^T}{2}\)
*
* A rotation vector is a convenient and most compact representation of a rotation matrix (since any
* rotation matrix has just 3 degrees of freedom). The representation is used in the global 3D geometry
* optimization procedures like REF: calibrateCamera, REF: stereoCalibrate, or REF: solvePnP .
*
* <b>Note:</b> More information about the computation of the derivative of a 3D rotation matrix with respect to its exponential coordinate
* can be found in:
* <ul>
* <li>
* A Compact Formula for the Derivative of a 3-D Rotation in Exponential Coordinates, Guillermo Gallego, Anthony J. Yezzi CITE: Gallego2014ACF
* </li>
* </ul>
*
* <b>Note:</b> Useful information on SE(3) and Lie Groups can be found in:
* <ul>
* <li>
* A tutorial on SE(3) transformation parameterizations and on-manifold optimization, Jose-Luis Blanco CITE: blanco2010tutorial
* </li>
* <li>
* Lie Groups for 2D and 3D Transformation, Ethan Eade CITE: Eade17
* </li>
* <li>
* A micro Lie theory for state estimation in robotics, Joan Solà, Jérémie Deray, Dinesh Atchuthan CITE: Sol2018AML
* </li>
* </ul>
*/
public static void Rodrigues(Mat src, Mat dst, Mat jacobian) {
Rodrigues_0(src.nativeObj, dst.nativeObj, jacobian.nativeObj);
}
/**
* Converts a rotation matrix to a rotation vector or vice versa.
*
* @param src Input rotation vector (3x1 or 1x3) or rotation matrix (3x3).
* @param ds
评论0