Doxygen documentation: more fixes and cleanups
This commit is contained in:
@@ -127,19 +127,19 @@ pattern (every view is described by several 3D-2D point correspondences).
|
||||
|
||||
@note
|
||||
- A calibration sample for 3 cameras in horizontal position can be found at
|
||||
opencv\_source\_code/samples/cpp/3calibration.cpp
|
||||
opencv_source_code/samples/cpp/3calibration.cpp
|
||||
- A calibration sample based on a sequence of images can be found at
|
||||
opencv\_source\_code/samples/cpp/calibration.cpp
|
||||
opencv_source_code/samples/cpp/calibration.cpp
|
||||
- A calibration sample in order to do 3D reconstruction can be found at
|
||||
opencv\_source\_code/samples/cpp/build3dmodel.cpp
|
||||
opencv_source_code/samples/cpp/build3dmodel.cpp
|
||||
- A calibration sample of an artificially generated camera and chessboard patterns can be
|
||||
found at opencv\_source\_code/samples/cpp/calibration\_artificial.cpp
|
||||
found at opencv_source_code/samples/cpp/calibration_artificial.cpp
|
||||
- A calibration example on stereo calibration can be found at
|
||||
opencv\_source\_code/samples/cpp/stereo\_calib.cpp
|
||||
opencv_source_code/samples/cpp/stereo_calib.cpp
|
||||
- A calibration example on stereo matching can be found at
|
||||
opencv\_source\_code/samples/cpp/stereo\_match.cpp
|
||||
opencv_source_code/samples/cpp/stereo_match.cpp
|
||||
- (Python) A camera calibration sample can be found at
|
||||
opencv\_source\_code/samples/python2/calibrate.py
|
||||
opencv_source_code/samples/python2/calibrate.py
|
||||
|
||||
@{
|
||||
@defgroup calib3d_fisheye Fisheye camera model
|
||||
@@ -257,9 +257,9 @@ CV_EXPORTS_W void Rodrigues( InputArray src, OutputArray dst, OutputArray jacobi
|
||||
|
||||
/** @brief Finds a perspective transformation between two planes.
|
||||
|
||||
@param srcPoints Coordinates of the points in the original plane, a matrix of the type CV\_32FC2
|
||||
@param srcPoints Coordinates of the points in the original plane, a matrix of the type CV_32FC2
|
||||
or vector\<Point2f\> .
|
||||
@param dstPoints Coordinates of the points in the target plane, a matrix of the type CV\_32FC2 or
|
||||
@param dstPoints Coordinates of the points in the target plane, a matrix of the type CV_32FC2 or
|
||||
a vector\<Point2f\> .
|
||||
@param method Method used to computed a homography matrix. The following methods are possible:
|
||||
- **0** - a regular method using all the points
|
||||
@@ -315,7 +315,7 @@ cannot be estimated, an empty one will be returned.
|
||||
|
||||
@note
|
||||
- A example on calculating a homography for image matching can be found at
|
||||
opencv\_source\_code/samples/cpp/video\_homography.cpp
|
||||
opencv_source_code/samples/cpp/video_homography.cpp
|
||||
|
||||
*/
|
||||
CV_EXPORTS_W Mat findHomography( InputArray srcPoints, InputArray dstPoints,
|
||||
@@ -485,22 +485,22 @@ the vector is NULL/empty, the zero distortion coefficients are assumed.
|
||||
@param rvec Output rotation vector (see Rodrigues ) that, together with tvec , brings points from
|
||||
the model coordinate system to the camera coordinate system.
|
||||
@param tvec Output translation vector.
|
||||
@param useExtrinsicGuess Parameter used for SOLVEPNP\_ITERATIVE. If true (1), the function uses
|
||||
@param useExtrinsicGuess Parameter used for SOLVEPNP_ITERATIVE. If true (1), the function uses
|
||||
the provided rvec and tvec values as initial approximations of the rotation and translation
|
||||
vectors, respectively, and further optimizes them.
|
||||
@param flags Method for solving a PnP problem:
|
||||
- **SOLVEPNP\_ITERATIVE** Iterative method is based on Levenberg-Marquardt optimization. In
|
||||
- **SOLVEPNP_ITERATIVE** Iterative method is based on Levenberg-Marquardt optimization. In
|
||||
this case the function finds such a pose that minimizes reprojection error, that is the sum
|
||||
of squared distances between the observed projections imagePoints and the projected (using
|
||||
projectPoints ) objectPoints .
|
||||
- **SOLVEPNP\_P3P** Method is based on the paper of X.S. Gao, X.-R. Hou, J. Tang, H.-F. Chang
|
||||
- **SOLVEPNP_P3P** Method is based on the paper of X.S. Gao, X.-R. Hou, J. Tang, H.-F. Chang
|
||||
"Complete Solution Classification for the Perspective-Three-Point Problem". In this case the
|
||||
function requires exactly four object and image points.
|
||||
- **SOLVEPNP\_EPNP** Method has been introduced by F.Moreno-Noguer, V.Lepetit and P.Fua in the
|
||||
- **SOLVEPNP_EPNP** Method has been introduced by F.Moreno-Noguer, V.Lepetit and P.Fua in the
|
||||
paper "EPnP: Efficient Perspective-n-Point Camera Pose Estimation".
|
||||
- **SOLVEPNP\_DLS** Method is based on the paper of Joel A. Hesch and Stergios I. Roumeliotis.
|
||||
- **SOLVEPNP_DLS** Method is based on the paper of Joel A. Hesch and Stergios I. Roumeliotis.
|
||||
"A Direct Least-Squares (DLS) Method for PnP".
|
||||
- **SOLVEPNP\_UPNP** Method is based on the paper of A.Penate-Sanchez, J.Andrade-Cetto,
|
||||
- **SOLVEPNP_UPNP** Method is based on the paper of A.Penate-Sanchez, J.Andrade-Cetto,
|
||||
F.Moreno-Noguer. "Exhaustive Linearization for Robust Camera Pose and Focal Length
|
||||
Estimation". In this case the function also estimates the parameters \f$f_x\f$ and \f$f_y\f$
|
||||
assuming that both have the same value. Then the cameraMatrix is updated with the estimated
|
||||
@@ -511,7 +511,7 @@ projections, as well as the camera matrix and the distortion coefficients.
|
||||
|
||||
@note
|
||||
- An example of how to use solvePnP for planar augmented reality can be found at
|
||||
opencv\_source\_code/samples/python2/plane\_ar.py
|
||||
opencv_source_code/samples/python2/plane_ar.py
|
||||
*/
|
||||
CV_EXPORTS_W bool solvePnP( InputArray objectPoints, InputArray imagePoints,
|
||||
InputArray cameraMatrix, InputArray distCoeffs,
|
||||
@@ -531,7 +531,7 @@ the vector is NULL/empty, the zero distortion coefficients are assumed.
|
||||
@param rvec Output rotation vector (see Rodrigues ) that, together with tvec , brings points from
|
||||
the model coordinate system to the camera coordinate system.
|
||||
@param tvec Output translation vector.
|
||||
@param useExtrinsicGuess Parameter used for SOLVEPNP\_ITERATIVE. If true (1), the function uses
|
||||
@param useExtrinsicGuess Parameter used for SOLVEPNP_ITERATIVE. If true (1), the function uses
|
||||
the provided rvec and tvec values as initial approximations of the rotation and translation
|
||||
vectors, respectively, and further optimizes them.
|
||||
@param iterationsCount Number of iterations.
|
||||
@@ -550,7 +550,7 @@ makes the function resistant to outliers.
|
||||
|
||||
@note
|
||||
- An example of how to use solvePNPRansac for object detection can be found at
|
||||
opencv\_source\_code/samples/cpp/tutorial\_code/calib3d/real\_time\_pose\_estimation/
|
||||
opencv_source_code/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/
|
||||
*/
|
||||
CV_EXPORTS_W bool solvePnPRansac( InputArray objectPoints, InputArray imagePoints,
|
||||
InputArray cameraMatrix, InputArray distCoeffs,
|
||||
@@ -582,16 +582,16 @@ CV_EXPORTS_W Mat initCameraMatrix2D( InputArrayOfArrays objectPoints,
|
||||
|
||||
@param image Source chessboard view. It must be an 8-bit grayscale or color image.
|
||||
@param patternSize Number of inner corners per a chessboard row and column
|
||||
( patternSize = cvSize(points\_per\_row,points\_per\_colum) = cvSize(columns,rows) ).
|
||||
( patternSize = cvSize(points_per_row,points_per_colum) = cvSize(columns,rows) ).
|
||||
@param corners Output array of detected corners.
|
||||
@param flags Various operation flags that can be zero or a combination of the following values:
|
||||
- **CV\_CALIB\_CB\_ADAPTIVE\_THRESH** Use adaptive thresholding to convert the image to black
|
||||
- **CV_CALIB_CB_ADAPTIVE_THRESH** Use adaptive thresholding to convert the image to black
|
||||
and white, rather than a fixed threshold level (computed from the average image brightness).
|
||||
- **CV\_CALIB\_CB\_NORMALIZE\_IMAGE** Normalize the image gamma with equalizeHist before
|
||||
- **CV_CALIB_CB_NORMALIZE_IMAGE** Normalize the image gamma with equalizeHist before
|
||||
applying fixed or adaptive thresholding.
|
||||
- **CV\_CALIB\_CB\_FILTER\_QUADS** Use additional criteria (like contour area, perimeter,
|
||||
- **CV_CALIB_CB_FILTER_QUADS** Use additional criteria (like contour area, perimeter,
|
||||
square-like shape) to filter out false quads extracted at the contour retrieval stage.
|
||||
- **CALIB\_CB\_FAST\_CHECK** Run a fast check on the image that looks for chessboard corners,
|
||||
- **CALIB_CB_FAST_CHECK** Run a fast check on the image that looks for chessboard corners,
|
||||
and shortcut the call if none is found. This can drastically speed up the call in the
|
||||
degenerate condition when no chessboard is observed.
|
||||
|
||||
@@ -637,7 +637,7 @@ CV_EXPORTS bool find4QuadCornerSubpix( InputArray img, InputOutputArray corners,
|
||||
|
||||
@param image Destination image. It must be an 8-bit color image.
|
||||
@param patternSize Number of inner corners per a chessboard row and column
|
||||
(patternSize = cv::Size(points\_per\_row,points\_per\_column)).
|
||||
(patternSize = cv::Size(points_per_row,points_per_column)).
|
||||
@param corners Array of detected corners, the output of findChessboardCorners.
|
||||
@param patternWasFound Parameter indicating whether the complete board was found or not. The
|
||||
return value of findChessboardCorners should be passed here.
|
||||
@@ -652,12 +652,12 @@ CV_EXPORTS_W void drawChessboardCorners( InputOutputArray image, Size patternSiz
|
||||
|
||||
@param image grid view of input circles; it must be an 8-bit grayscale or color image.
|
||||
@param patternSize number of circles per row and column
|
||||
( patternSize = Size(points\_per\_row, points\_per\_colum) ).
|
||||
( patternSize = Size(points_per_row, points_per_colum) ).
|
||||
@param centers output array of detected centers.
|
||||
@param flags various operation flags that can be one of the following values:
|
||||
- **CALIB\_CB\_SYMMETRIC\_GRID** uses symmetric pattern of circles.
|
||||
- **CALIB\_CB\_ASYMMETRIC\_GRID** uses asymmetric pattern of circles.
|
||||
- **CALIB\_CB\_CLUSTERING** uses a special algorithm for grid detection. It is more robust to
|
||||
- **CALIB_CB_SYMMETRIC_GRID** uses symmetric pattern of circles.
|
||||
- **CALIB_CB_ASYMMETRIC_GRID** uses asymmetric pattern of circles.
|
||||
- **CALIB_CB_CLUSTERING** uses a special algorithm for grid detection. It is more robust to
|
||||
perspective distortions but much more sensitive to background clutter.
|
||||
@param blobDetector feature detector that finds blobs like dark circles on light background.
|
||||
|
||||
@@ -703,7 +703,7 @@ together.
|
||||
@param imageSize Size of the image used only to initialize the intrinsic camera matrix.
|
||||
@param cameraMatrix Output 3x3 floating-point camera matrix
|
||||
\f$A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\f$ . If CV\_CALIB\_USE\_INTRINSIC\_GUESS
|
||||
and/or CV\_CALIB\_FIX\_ASPECT\_RATIO are specified, some or all of fx, fy, cx, cy must be
|
||||
and/or CV_CALIB_FIX_ASPECT_RATIO are specified, some or all of fx, fy, cx, cy must be
|
||||
initialized before calling the function.
|
||||
@param distCoeffs Output vector of distortion coefficients
|
||||
\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\f$ of 4, 5, 8 or 12 elements.
|
||||
@@ -714,33 +714,33 @@ space (in which object points are specified) to the world coordinate space, that
|
||||
position of the calibration pattern in the k-th pattern view (k=0.. *M* -1).
|
||||
@param tvecs Output vector of translation vectors estimated for each pattern view.
|
||||
@param flags Different flags that may be zero or a combination of the following values:
|
||||
- **CV\_CALIB\_USE\_INTRINSIC\_GUESS** cameraMatrix contains valid initial values of
|
||||
- **CV_CALIB_USE_INTRINSIC_GUESS** cameraMatrix contains valid initial values of
|
||||
fx, fy, cx, cy that are optimized further. Otherwise, (cx, cy) is initially set to the image
|
||||
center ( imageSize is used), and focal distances are computed in a least-squares fashion.
|
||||
Note, that if intrinsic parameters are known, there is no need to use this function just to
|
||||
estimate extrinsic parameters. Use solvePnP instead.
|
||||
- **CV\_CALIB\_FIX\_PRINCIPAL\_POINT** The principal point is not changed during the global
|
||||
- **CV_CALIB_FIX_PRINCIPAL_POINT** The principal point is not changed during the global
|
||||
optimization. It stays at the center or at a different location specified when
|
||||
CV\_CALIB\_USE\_INTRINSIC\_GUESS is set too.
|
||||
- **CV\_CALIB\_FIX\_ASPECT\_RATIO** The functions considers only fy as a free parameter. The
|
||||
CV_CALIB_USE_INTRINSIC_GUESS is set too.
|
||||
- **CV_CALIB_FIX_ASPECT_RATIO** The functions considers only fy as a free parameter. The
|
||||
ratio fx/fy stays the same as in the input cameraMatrix . When
|
||||
CV\_CALIB\_USE\_INTRINSIC\_GUESS is not set, the actual input values of fx and fy are
|
||||
CV_CALIB_USE_INTRINSIC_GUESS is not set, the actual input values of fx and fy are
|
||||
ignored, only their ratio is computed and used further.
|
||||
- **CV\_CALIB\_ZERO\_TANGENT\_DIST** Tangential distortion coefficients \f$(p_1, p_2)\f$ are set
|
||||
- **CV_CALIB_ZERO_TANGENT_DIST** Tangential distortion coefficients \f$(p_1, p_2)\f$ are set
|
||||
to zeros and stay zero.
|
||||
- **CV\_CALIB\_FIX\_K1,...,CV\_CALIB\_FIX\_K6** The corresponding radial distortion
|
||||
coefficient is not changed during the optimization. If CV\_CALIB\_USE\_INTRINSIC\_GUESS is
|
||||
- **CV_CALIB_FIX_K1,...,CV_CALIB_FIX_K6** The corresponding radial distortion
|
||||
coefficient is not changed during the optimization. If CV_CALIB_USE_INTRINSIC_GUESS is
|
||||
set, the coefficient from the supplied distCoeffs matrix is used. Otherwise, it is set to 0.
|
||||
- **CV\_CALIB\_RATIONAL\_MODEL** Coefficients k4, k5, and k6 are enabled. To provide the
|
||||
- **CV_CALIB_RATIONAL_MODEL** Coefficients k4, k5, and k6 are enabled. To provide the
|
||||
backward compatibility, this extra flag should be explicitly specified to make the
|
||||
calibration function use the rational model and return 8 coefficients. If the flag is not
|
||||
set, the function computes and returns only 5 distortion coefficients.
|
||||
- **CALIB\_THIN\_PRISM\_MODEL** Coefficients s1, s2, s3 and s4 are enabled. To provide the
|
||||
- **CALIB_THIN_PRISM_MODEL** Coefficients s1, s2, s3 and s4 are enabled. To provide the
|
||||
backward compatibility, this extra flag should be explicitly specified to make the
|
||||
calibration function use the thin prism model and return 12 coefficients. If the flag is not
|
||||
set, the function computes and returns only 5 distortion coefficients.
|
||||
- **CALIB\_FIX\_S1\_S2\_S3\_S4** The thin prism distortion coefficients are not changed during
|
||||
the optimization. If CV\_CALIB\_USE\_INTRINSIC\_GUESS is set, the coefficient from the
|
||||
- **CALIB_FIX_S1_S2_S3_S4** The thin prism distortion coefficients are not changed during
|
||||
the optimization. If CV_CALIB_USE_INTRINSIC_GUESS is set, the coefficient from the
|
||||
supplied distCoeffs matrix is used. Otherwise, it is set to 0.
|
||||
@param criteria Termination criteria for the iterative optimization algorithm.
|
||||
|
||||
@@ -750,7 +750,7 @@ points and their corresponding 2D projections in each view must be specified. Th
|
||||
by using an object with a known geometry and easily detectable feature points. Such an object is
|
||||
called a calibration rig or calibration pattern, and OpenCV has built-in support for a chessboard as
|
||||
a calibration rig (see findChessboardCorners ). Currently, initialization of intrinsic parameters
|
||||
(when CV\_CALIB\_USE\_INTRINSIC\_GUESS is not set) is only implemented for planar calibration
|
||||
(when CV_CALIB_USE_INTRINSIC_GUESS is not set) is only implemented for planar calibration
|
||||
patterns (where Z-coordinates of the object points must be all zeros). 3D calibration rigs can also
|
||||
be used as long as initial cameraMatrix is provided.
|
||||
|
||||
@@ -758,7 +758,7 @@ The algorithm performs the following steps:
|
||||
|
||||
- Compute the initial intrinsic parameters (the option only available for planar calibration
|
||||
patterns) or read them from the input parameters. The distortion coefficients are all set to
|
||||
zeros initially unless some of CV\_CALIB\_FIX\_K? are specified.
|
||||
zeros initially unless some of CV_CALIB_FIX_K? are specified.
|
||||
|
||||
- Estimate the initial camera pose as if the intrinsic parameters have been already known. This is
|
||||
done using solvePnP .
|
||||
@@ -822,8 +822,8 @@ observed by the first camera.
|
||||
observed by the second camera.
|
||||
@param cameraMatrix1 Input/output first camera matrix:
|
||||
\f$\vecthreethree{f_x^{(j)}}{0}{c_x^{(j)}}{0}{f_y^{(j)}}{c_y^{(j)}}{0}{0}{1}\f$ , \f$j = 0,\, 1\f$ . If
|
||||
any of CV\_CALIB\_USE\_INTRINSIC\_GUESS , CV\_CALIB\_FIX\_ASPECT\_RATIO ,
|
||||
CV\_CALIB\_FIX\_INTRINSIC , or CV\_CALIB\_FIX\_FOCAL\_LENGTH are specified, some or all of the
|
||||
any of CV_CALIB_USE_INTRINSIC_GUESS , CV_CALIB_FIX_ASPECT_RATIO ,
|
||||
CV_CALIB_FIX_INTRINSIC , or CV_CALIB_FIX_FOCAL_LENGTH are specified, some or all of the
|
||||
matrix components must be initialized. See the flags description for details.
|
||||
@param distCoeffs1 Input/output vector of distortion coefficients
|
||||
\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\f$ of 4, 5, 8 ot 12 elements. The
|
||||
@@ -837,30 +837,30 @@ is similar to distCoeffs1 .
|
||||
@param E Output essential matrix.
|
||||
@param F Output fundamental matrix.
|
||||
@param flags Different flags that may be zero or a combination of the following values:
|
||||
- **CV\_CALIB\_FIX\_INTRINSIC** Fix cameraMatrix? and distCoeffs? so that only R, T, E , and F
|
||||
- **CV_CALIB_FIX_INTRINSIC** Fix cameraMatrix? and distCoeffs? so that only R, T, E , and F
|
||||
matrices are estimated.
|
||||
- **CV\_CALIB\_USE\_INTRINSIC\_GUESS** Optimize some or all of the intrinsic parameters
|
||||
- **CV_CALIB_USE_INTRINSIC_GUESS** Optimize some or all of the intrinsic parameters
|
||||
according to the specified flags. Initial values are provided by the user.
|
||||
- **CV\_CALIB\_FIX\_PRINCIPAL\_POINT** Fix the principal points during the optimization.
|
||||
- **CV\_CALIB\_FIX\_FOCAL\_LENGTH** Fix \f$f^{(j)}_x\f$ and \f$f^{(j)}_y\f$ .
|
||||
- **CV\_CALIB\_FIX\_ASPECT\_RATIO** Optimize \f$f^{(j)}_y\f$ . Fix the ratio \f$f^{(j)}_x/f^{(j)}_y\f$
|
||||
- **CV_CALIB_FIX_PRINCIPAL_POINT** Fix the principal points during the optimization.
|
||||
- **CV_CALIB_FIX_FOCAL_LENGTH** Fix \f$f^{(j)}_x\f$ and \f$f^{(j)}_y\f$ .
|
||||
- **CV_CALIB_FIX_ASPECT_RATIO** Optimize \f$f^{(j)}_y\f$ . Fix the ratio \f$f^{(j)}_x/f^{(j)}_y\f$
|
||||
.
|
||||
- **CV\_CALIB\_SAME\_FOCAL\_LENGTH** Enforce \f$f^{(0)}_x=f^{(1)}_x\f$ and \f$f^{(0)}_y=f^{(1)}_y\f$ .
|
||||
- **CV\_CALIB\_ZERO\_TANGENT\_DIST** Set tangential distortion coefficients for each camera to
|
||||
- **CV_CALIB_SAME_FOCAL_LENGTH** Enforce \f$f^{(0)}_x=f^{(1)}_x\f$ and \f$f^{(0)}_y=f^{(1)}_y\f$ .
|
||||
- **CV_CALIB_ZERO_TANGENT_DIST** Set tangential distortion coefficients for each camera to
|
||||
zeros and fix there.
|
||||
- **CV\_CALIB\_FIX\_K1,...,CV\_CALIB\_FIX\_K6** Do not change the corresponding radial
|
||||
distortion coefficient during the optimization. If CV\_CALIB\_USE\_INTRINSIC\_GUESS is set,
|
||||
- **CV_CALIB_FIX_K1,...,CV_CALIB_FIX_K6** Do not change the corresponding radial
|
||||
distortion coefficient during the optimization. If CV_CALIB_USE_INTRINSIC_GUESS is set,
|
||||
the coefficient from the supplied distCoeffs matrix is used. Otherwise, it is set to 0.
|
||||
- **CV\_CALIB\_RATIONAL\_MODEL** Enable coefficients k4, k5, and k6. To provide the backward
|
||||
- **CV_CALIB_RATIONAL_MODEL** Enable coefficients k4, k5, and k6. To provide the backward
|
||||
compatibility, this extra flag should be explicitly specified to make the calibration
|
||||
function use the rational model and return 8 coefficients. If the flag is not set, the
|
||||
function computes and returns only 5 distortion coefficients.
|
||||
- **CALIB\_THIN\_PRISM\_MODEL** Coefficients s1, s2, s3 and s4 are enabled. To provide the
|
||||
- **CALIB_THIN_PRISM_MODEL** Coefficients s1, s2, s3 and s4 are enabled. To provide the
|
||||
backward compatibility, this extra flag should be explicitly specified to make the
|
||||
calibration function use the thin prism model and return 12 coefficients. If the flag is not
|
||||
set, the function computes and returns only 5 distortion coefficients.
|
||||
- **CALIB\_FIX\_S1\_S2\_S3\_S4** The thin prism distortion coefficients are not changed during
|
||||
the optimization. If CV\_CALIB\_USE\_INTRINSIC\_GUESS is set, the coefficient from the
|
||||
- **CALIB_FIX_S1_S2_S3_S4** The thin prism distortion coefficients are not changed during
|
||||
the optimization. If CV_CALIB_USE_INTRINSIC_GUESS is set, the coefficient from the
|
||||
supplied distCoeffs matrix is used. Otherwise, it is set to 0.
|
||||
@param criteria Termination criteria for the iterative optimization algorithm.
|
||||
|
||||
@@ -888,10 +888,10 @@ Besides the stereo-related information, the function can also perform a full cal
|
||||
two cameras. However, due to the high dimensionality of the parameter space and noise in the input
|
||||
data, the function can diverge from the correct solution. If the intrinsic parameters can be
|
||||
estimated with high accuracy for each of the cameras individually (for example, using
|
||||
calibrateCamera ), you are recommended to do so and then pass CV\_CALIB\_FIX\_INTRINSIC flag to the
|
||||
calibrateCamera ), you are recommended to do so and then pass CV_CALIB_FIX_INTRINSIC flag to the
|
||||
function along with the computed intrinsic parameters. Otherwise, if all the parameters are
|
||||
estimated at once, it makes sense to restrict some parameters, for example, pass
|
||||
CV\_CALIB\_SAME\_FOCAL\_LENGTH and CV\_CALIB\_ZERO\_TANGENT\_DIST flags, which is usually a
|
||||
CV_CALIB_SAME_FOCAL_LENGTH and CV_CALIB_ZERO_TANGENT_DIST flags, which is usually a
|
||||
reasonable assumption.
|
||||
|
||||
Similarly to calibrateCamera , the function minimizes the total re-projection error for all the
|
||||
@@ -923,7 +923,7 @@ camera.
|
||||
@param P2 Output 3x4 projection matrix in the new (rectified) coordinate systems for the second
|
||||
camera.
|
||||
@param Q Output \f$4 \times 4\f$ disparity-to-depth mapping matrix (see reprojectImageTo3D ).
|
||||
@param flags Operation flags that may be zero or CV\_CALIB\_ZERO\_DISPARITY . If the flag is set,
|
||||
@param flags Operation flags that may be zero or CV_CALIB_ZERO_DISPARITY . If the flag is set,
|
||||
the function makes the principal points of each camera have the same pixel coordinates in the
|
||||
rectified views. And if the flag is not set, the function may still shift the images in the
|
||||
horizontal or vertical direction (depending on the orientation of epipolar lines) to maximize the
|
||||
@@ -936,7 +936,7 @@ pixels from the original images from the cameras are retained in the rectified i
|
||||
image pixels are lost). Obviously, any intermediate value yields an intermediate result between
|
||||
those two extreme cases.
|
||||
@param newImageSize New image resolution after rectification. The same size should be passed to
|
||||
initUndistortRectifyMap (see the stereo\_calib.cpp sample in OpenCV samples directory). When (0,0)
|
||||
initUndistortRectifyMap (see the stereo_calib.cpp sample in OpenCV samples directory). When (0,0)
|
||||
is passed (default), it is set to the original imageSize . Setting it to larger value can help you
|
||||
preserve details in the original image, especially when there is a big radial distortion.
|
||||
@param validPixROI1 Optional output rectangles inside the rectified images where all the pixels
|
||||
@@ -962,7 +962,7 @@ coordinates. The function distinguishes the following two cases:
|
||||
\f[\texttt{P2} = \begin{bmatrix} f & 0 & cx_2 & T_x*f \\ 0 & f & cy & 0 \\ 0 & 0 & 1 & 0 \end{bmatrix} ,\f]
|
||||
|
||||
where \f$T_x\f$ is a horizontal shift between the cameras and \f$cx_1=cx_2\f$ if
|
||||
CV\_CALIB\_ZERO\_DISPARITY is set.
|
||||
CV_CALIB_ZERO_DISPARITY is set.
|
||||
|
||||
- **Vertical stereo**: the first and the second camera views are shifted relative to each other
|
||||
mainly in vertical direction (and probably a bit in the horizontal direction too). The epipolar
|
||||
@@ -972,14 +972,14 @@ coordinates. The function distinguishes the following two cases:
|
||||
|
||||
\f[\texttt{P2} = \begin{bmatrix} f & 0 & cx & 0 \\ 0 & f & cy_2 & T_y*f \\ 0 & 0 & 1 & 0 \end{bmatrix} ,\f]
|
||||
|
||||
where \f$T_y\f$ is a vertical shift between the cameras and \f$cy_1=cy_2\f$ if CALIB\_ZERO\_DISPARITY is
|
||||
where \f$T_y\f$ is a vertical shift between the cameras and \f$cy_1=cy_2\f$ if CALIB_ZERO_DISPARITY is
|
||||
set.
|
||||
|
||||
As you can see, the first three columns of P1 and P2 will effectively be the new "rectified" camera
|
||||
matrices. The matrices, together with R1 and R2 , can then be passed to initUndistortRectifyMap to
|
||||
initialize the rectification map for each camera.
|
||||
|
||||
See below the screenshot from the stereo\_calib.cpp sample. Some red horizontal lines pass through
|
||||
See below the screenshot from the stereo_calib.cpp sample. Some red horizontal lines pass through
|
||||
the corresponding image regions. This means that the images are well rectified, which is what most
|
||||
stereo correspondence algorithms rely on. The green rectangles are roi1 and roi2 . You see that
|
||||
their interiors are all valid pixels.
|
||||
@@ -1057,7 +1057,7 @@ undistorted image. See roi1, roi2 description in stereoRectify .
|
||||
@param centerPrincipalPoint Optional flag that indicates whether in the new camera matrix the
|
||||
principal point should be at the image center or not. By default, the principal point is chosen to
|
||||
best fit a subset of the source image (determined by alpha) to the corrected image.
|
||||
@return new\_camera\_matrix Output new camera matrix.
|
||||
@return new_camera_matrix Output new camera matrix.
|
||||
|
||||
The function computes and returns the optimal new camera matrix based on the free scaling parameter.
|
||||
By varying this parameter, you may retrieve only sensible pixels alpha=0 , keep all the original
|
||||
@@ -1111,10 +1111,10 @@ CV_EXPORTS void convertPointsHomogeneous( InputArray src, OutputArray dst );
|
||||
floating-point (single or double precision).
|
||||
@param points2 Array of the second image points of the same size and format as points1 .
|
||||
@param method Method for computing a fundamental matrix.
|
||||
- **CV\_FM\_7POINT** for a 7-point algorithm. \f$N = 7\f$
|
||||
- **CV\_FM\_8POINT** for an 8-point algorithm. \f$N \ge 8\f$
|
||||
- **CV\_FM\_RANSAC** for the RANSAC algorithm. \f$N \ge 8\f$
|
||||
- **CV\_FM\_LMEDS** for the LMedS algorithm. \f$N \ge 8\f$
|
||||
- **CV_FM_7POINT** for a 7-point algorithm. \f$N = 7\f$
|
||||
- **CV_FM_8POINT** for an 8-point algorithm. \f$N \ge 8\f$
|
||||
- **CV_FM_RANSAC** for the RANSAC algorithm. \f$N \ge 8\f$
|
||||
- **CV_FM_LMEDS** for the LMedS algorithm. \f$N \ge 8\f$
|
||||
@param param1 Parameter used for RANSAC. It is the maximum distance from a point to an epipolar
|
||||
line in pixels, beyond which the point is considered an outlier and is not used for computing the
|
||||
final fundamental matrix. It can be set to something like 1-3, depending on the accuracy of the
|
||||
@@ -1269,7 +1269,7 @@ CV_EXPORTS_W int recoverPose( InputArray E, InputArray points1, InputArray point
|
||||
|
||||
/** @brief For points in an image of a stereo pair, computes the corresponding epilines in the other image.
|
||||
|
||||
@param points Input points. \f$N \times 1\f$ or \f$1 \times N\f$ matrix of type CV\_32FC2 or
|
||||
@param points Input points. \f$N \times 1\f$ or \f$1 \times N\f$ matrix of type CV_32FC2 or
|
||||
vector\<Point2f\> .
|
||||
@param whichImage Index of the image (1 or 2) that contains the points .
|
||||
@param F Fundamental matrix that can be estimated using findFundamentalMat or stereoRectify .
|
||||
@@ -1364,16 +1364,16 @@ CV_EXPORTS_W void validateDisparity( InputOutputArray disparity, InputArray cost
|
||||
|
||||
@param disparity Input single-channel 8-bit unsigned, 16-bit signed, 32-bit signed or 32-bit
|
||||
floating-point disparity image.
|
||||
@param \_3dImage Output 3-channel floating-point image of the same size as disparity . Each
|
||||
element of \_3dImage(x,y) contains 3D coordinates of the point (x,y) computed from the disparity
|
||||
@param _3dImage Output 3-channel floating-point image of the same size as disparity . Each
|
||||
element of _3dImage(x,y) contains 3D coordinates of the point (x,y) computed from the disparity
|
||||
map.
|
||||
@param Q \f$4 \times 4\f$ perspective transformation matrix that can be obtained with stereoRectify.
|
||||
@param handleMissingValues Indicates, whether the function should handle missing values (i.e.
|
||||
points where the disparity was not computed). If handleMissingValues=true, then pixels with the
|
||||
minimal disparity that corresponds to the outliers (see StereoMatcher::compute ) are transformed
|
||||
to 3D points with a very large Z value (currently set to 10000).
|
||||
@param ddepth The optional output array depth. If it is -1, the output image will have CV\_32F
|
||||
depth. ddepth can also be set to CV\_16S, CV\_32S or CV\_32F.
|
||||
@param ddepth The optional output array depth. If it is -1, the output image will have CV_32F
|
||||
depth. ddepth can also be set to CV_16S, CV_32S or CV_32F.
|
||||
|
||||
The function transforms a single-channel disparity map to a 3-channel image representing a 3D
|
||||
surface. That is, for each pixel (x,y) andthe corresponding disparity d=disparity(x,y) , it
|
||||
@@ -1523,19 +1523,19 @@ public:
|
||||
one as follows:
|
||||
|
||||
- By default, the algorithm is single-pass, which means that you consider only 5 directions
|
||||
instead of 8. Set mode=StereoSGBM::MODE\_HH in createStereoSGBM to run the full variant of the
|
||||
instead of 8. Set mode=StereoSGBM::MODE_HH in createStereoSGBM to run the full variant of the
|
||||
algorithm but beware that it may consume a lot of memory.
|
||||
- The algorithm matches blocks, not individual pixels. Though, setting blockSize=1 reduces the
|
||||
blocks to single pixels.
|
||||
- Mutual information cost function is not implemented. Instead, a simpler Birchfield-Tomasi
|
||||
sub-pixel metric from @cite BT98 is used. Though, the color images are supported as well.
|
||||
- Some pre- and post- processing steps from K. Konolige algorithm StereoBM are included, for
|
||||
example: pre-filtering (StereoBM::PREFILTER\_XSOBEL type) and post-filtering (uniqueness
|
||||
example: pre-filtering (StereoBM::PREFILTER_XSOBEL type) and post-filtering (uniqueness
|
||||
check, quadratic interpolation and speckle filtering).
|
||||
|
||||
@note
|
||||
- (Python) An example illustrating the use of the StereoSGBM matching algorithm can be found
|
||||
at opencv\_source\_code/samples/python2/stereo\_match.py
|
||||
at opencv_source_code/samples/python2/stereo_match.py
|
||||
*/
|
||||
class CV_EXPORTS_W StereoSGBM : public StereoMatcher
|
||||
{
|
||||
@@ -1573,9 +1573,9 @@ public:
|
||||
@param P2 The second parameter controlling the disparity smoothness. The larger the values are,
|
||||
the smoother the disparity is. P1 is the penalty on the disparity change by plus or minus 1
|
||||
between neighbor pixels. P2 is the penalty on the disparity change by more than 1 between neighbor
|
||||
pixels. The algorithm requires P2 \> P1 . See stereo\_match.cpp sample where some reasonably good
|
||||
P1 and P2 values are shown (like 8\*number\_of\_image\_channels\*SADWindowSize\*SADWindowSize and
|
||||
32\*number\_of\_image\_channels\*SADWindowSize\*SADWindowSize , respectively).
|
||||
pixels. The algorithm requires P2 \> P1 . See stereo_match.cpp sample where some reasonably good
|
||||
P1 and P2 values are shown (like 8\*number_of_image_channels\*SADWindowSize\*SADWindowSize and
|
||||
32\*number_of_image_channels\*SADWindowSize\*SADWindowSize , respectively).
|
||||
@param disp12MaxDiff Maximum allowed difference (in integer pixel units) in the left-right
|
||||
disparity check. Set it to a non-positive value to disable the check.
|
||||
@param preFilterCap Truncation value for the prefiltered image pixels. The algorithm first
|
||||
@@ -1590,7 +1590,7 @@ public:
|
||||
@param speckleRange Maximum disparity variation within each connected component. If you do speckle
|
||||
filtering, set the parameter to a positive value, it will be implicitly multiplied by 16.
|
||||
Normally, 1 or 2 is good enough.
|
||||
@param mode Set it to StereoSGBM::MODE\_HH to run the full-scale two-pass dynamic programming
|
||||
@param mode Set it to StereoSGBM::MODE_HH to run the full-scale two-pass dynamic programming
|
||||
algorithm. It will consume O(W\*H\*numDisparities) bytes, which is large for 640x480 stereo and
|
||||
huge for HD-size pictures. By default, it is set to false .
|
||||
|
||||
@@ -1687,7 +1687,7 @@ namespace fisheye
|
||||
1-channel or 1x1 3-channel
|
||||
@param P New camera matrix (3x3) or new projection matrix (3x4)
|
||||
@param size Undistorted image size.
|
||||
@param m1type Type of the first output map that can be CV\_32FC1 or CV\_16SC2 . See convertMaps()
|
||||
@param m1type Type of the first output map that can be CV_32FC1 or CV_16SC2 . See convertMaps()
|
||||
for details.
|
||||
@param map1 The first output map.
|
||||
@param map2 The second output map.
|
||||
@@ -1712,10 +1712,10 @@ namespace fisheye
|
||||
performed.
|
||||
|
||||
See below the results of undistortImage.
|
||||
- a\) result of undistort of perspective camera model (all possible coefficients (k\_1, k\_2, k\_3,
|
||||
k\_4, k\_5, k\_6) of distortion were optimized under calibration)
|
||||
- b\) result of fisheye::undistortImage of fisheye camera model (all possible coefficients (k\_1, k\_2,
|
||||
k\_3, k\_4) of fisheye distortion were optimized under calibration)
|
||||
- a\) result of undistort of perspective camera model (all possible coefficients (k_1, k_2, k_3,
|
||||
k_4, k_5, k_6) of distortion were optimized under calibration)
|
||||
- b\) result of fisheye::undistortImage of fisheye camera model (all possible coefficients (k_1, k_2,
|
||||
k_3, k_4) of fisheye distortion were optimized under calibration)
|
||||
- c\) original image was captured with fisheye lens
|
||||
|
||||
Pictures a) and b) almost the same. But if we consider points of image located far from the center
|
||||
@@ -1749,10 +1749,10 @@ namespace fisheye
|
||||
@param imagePoints vector of vectors of the projections of calibration pattern points.
|
||||
imagePoints.size() and objectPoints.size() and imagePoints[i].size() must be equal to
|
||||
objectPoints[i].size() for each i.
|
||||
@param image\_size Size of the image used only to initialize the intrinsic camera matrix.
|
||||
@param image_size Size of the image used only to initialize the intrinsic camera matrix.
|
||||
@param K Output 3x3 floating-point camera matrix
|
||||
\f$A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\f$ . If
|
||||
fisheye::CALIB\_USE\_INTRINSIC\_GUESS/ is specified, some or all of fx, fy, cx, cy must be
|
||||
fisheye::CALIB_USE_INTRINSIC_GUESS/ is specified, some or all of fx, fy, cx, cy must be
|
||||
initialized before calling the function.
|
||||
@param D Output vector of distortion coefficients \f$(k_1, k_2, k_3, k_4)\f$.
|
||||
@param rvecs Output vector of rotation vectors (see Rodrigues ) estimated for each pattern view.
|
||||
@@ -1762,14 +1762,14 @@ namespace fisheye
|
||||
position of the calibration pattern in the k-th pattern view (k=0.. *M* -1).
|
||||
@param tvecs Output vector of translation vectors estimated for each pattern view.
|
||||
@param flags Different flags that may be zero or a combination of the following values:
|
||||
- **fisheye::CALIB\_USE\_INTRINSIC\_GUESS** cameraMatrix contains valid initial values of
|
||||
- **fisheye::CALIB_USE_INTRINSIC_GUESS** cameraMatrix contains valid initial values of
|
||||
fx, fy, cx, cy that are optimized further. Otherwise, (cx, cy) is initially set to the image
|
||||
center ( imageSize is used), and focal distances are computed in a least-squares fashion.
|
||||
- **fisheye::CALIB\_RECOMPUTE\_EXTRINSIC** Extrinsic will be recomputed after each iteration
|
||||
- **fisheye::CALIB_RECOMPUTE_EXTRINSIC** Extrinsic will be recomputed after each iteration
|
||||
of intrinsic optimization.
|
||||
- **fisheye::CALIB\_CHECK\_COND** The functions will check validity of condition number.
|
||||
- **fisheye::CALIB\_FIX\_SKEW** Skew coefficient (alpha) is set to zero and stay zero.
|
||||
- **fisheye::CALIB\_FIX\_K1..4** Selected distortion coefficients are set to zeros and stay
|
||||
- **fisheye::CALIB_CHECK_COND** The functions will check validity of condition number.
|
||||
- **fisheye::CALIB_FIX_SKEW** Skew coefficient (alpha) is set to zero and stay zero.
|
||||
- **fisheye::CALIB_FIX_K1..4** Selected distortion coefficients are set to zeros and stay
|
||||
zero.
|
||||
@param criteria Termination criteria for the iterative optimization algorithm.
|
||||
*/
|
||||
@@ -1794,13 +1794,13 @@ namespace fisheye
|
||||
@param P2 Output 3x4 projection matrix in the new (rectified) coordinate systems for the second
|
||||
camera.
|
||||
@param Q Output \f$4 \times 4\f$ disparity-to-depth mapping matrix (see reprojectImageTo3D ).
|
||||
@param flags Operation flags that may be zero or CV\_CALIB\_ZERO\_DISPARITY . If the flag is set,
|
||||
@param flags Operation flags that may be zero or CV_CALIB_ZERO_DISPARITY . If the flag is set,
|
||||
the function makes the principal points of each camera have the same pixel coordinates in the
|
||||
rectified views. And if the flag is not set, the function may still shift the images in the
|
||||
horizontal or vertical direction (depending on the orientation of epipolar lines) to maximize the
|
||||
useful image area.
|
||||
@param newImageSize New image resolution after rectification. The same size should be passed to
|
||||
initUndistortRectifyMap (see the stereo\_calib.cpp sample in OpenCV samples directory). When (0,0)
|
||||
initUndistortRectifyMap (see the stereo_calib.cpp sample in OpenCV samples directory). When (0,0)
|
||||
is passed (default), it is set to the original imageSize . Setting it to larger value can help you
|
||||
preserve details in the original image, especially when there is a big radial distortion.
|
||||
@param balance Sets the new focal length in range between the min focal length and the max focal
|
||||
@@ -1820,7 +1820,7 @@ namespace fisheye
|
||||
observed by the second camera.
|
||||
@param K1 Input/output first camera matrix:
|
||||
\f$\vecthreethree{f_x^{(j)}}{0}{c_x^{(j)}}{0}{f_y^{(j)}}{c_y^{(j)}}{0}{0}{1}\f$ , \f$j = 0,\, 1\f$ . If
|
||||
any of fisheye::CALIB\_USE\_INTRINSIC\_GUESS , fisheye::CV\_CALIB\_FIX\_INTRINSIC are specified,
|
||||
any of fisheye::CALIB_USE_INTRINSIC_GUESS , fisheye::CV_CALIB_FIX_INTRINSIC are specified,
|
||||
some or all of the matrix components must be initialized.
|
||||
@param D1 Input/output vector of distortion coefficients \f$(k_1, k_2, k_3, k_4)\f$ of 4 elements.
|
||||
@param K2 Input/output second camera matrix. The parameter is similar to K1 .
|
||||
@@ -1830,16 +1830,16 @@ namespace fisheye
|
||||
@param R Output rotation matrix between the 1st and the 2nd camera coordinate systems.
|
||||
@param T Output translation vector between the coordinate systems of the cameras.
|
||||
@param flags Different flags that may be zero or a combination of the following values:
|
||||
- **fisheye::CV\_CALIB\_FIX\_INTRINSIC** Fix K1, K2? and D1, D2? so that only R, T matrices
|
||||
- **fisheye::CV_CALIB_FIX_INTRINSIC** Fix K1, K2? and D1, D2? so that only R, T matrices
|
||||
are estimated.
|
||||
- **fisheye::CALIB\_USE\_INTRINSIC\_GUESS** K1, K2 contains valid initial values of
|
||||
- **fisheye::CALIB_USE_INTRINSIC_GUESS** K1, K2 contains valid initial values of
|
||||
fx, fy, cx, cy that are optimized further. Otherwise, (cx, cy) is initially set to the image
|
||||
center (imageSize is used), and focal distances are computed in a least-squares fashion.
|
||||
- **fisheye::CALIB\_RECOMPUTE\_EXTRINSIC** Extrinsic will be recomputed after each iteration
|
||||
- **fisheye::CALIB_RECOMPUTE_EXTRINSIC** Extrinsic will be recomputed after each iteration
|
||||
of intrinsic optimization.
|
||||
- **fisheye::CALIB\_CHECK\_COND** The functions will check validity of condition number.
|
||||
- **fisheye::CALIB\_FIX\_SKEW** Skew coefficient (alpha) is set to zero and stay zero.
|
||||
- **fisheye::CALIB\_FIX\_K1..4** Selected distortion coefficients are set to zeros and stay
|
||||
- **fisheye::CALIB_CHECK_COND** The functions will check validity of condition number.
|
||||
- **fisheye::CALIB_FIX_SKEW** Skew coefficient (alpha) is set to zero and stay zero.
|
||||
- **fisheye::CALIB_FIX_K1..4** Selected distortion coefficients are set to zeros and stay
|
||||
zero.
|
||||
@param criteria Termination criteria for the iterative optimization algorithm.
|
||||
*/
|
||||
|
Reference in New Issue
Block a user