mirror of
https://github.com/zebrajr/opencv.git
synced 2025-12-06 12:19:50 +01:00
Merge pull request #27475 from s-trinh:update_calib3d_doc
Reduce the size of the checkerboard_radon.png image in the doc
This commit is contained in:
commit
a55eca9fb5
Binary file not shown.
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 75 KiB |
|
|
@ -4,9 +4,9 @@
|
|||
|
||||
The pose computation problem @cite Marchand16 consists in solving for the rotation and translation that minimizes the reprojection error from 3D-2D point correspondences.
|
||||
|
||||
The `solvePnP` and related functions estimate the object pose given a set of object points, their corresponding image projections, as well as the camera intrinsic matrix and the distortion coefficients, see the figure below (more precisely, the X-axis of the camera frame is pointing to the right, the Y-axis downward and the Z-axis forward).
|
||||
The `solvePnP` and related functions estimate the object pose given a set of object points, their corresponding image projections, as well as the camera intrinsic matrix and the distortion coefficients, see the figure below (more precisely, the convention in the computer vision field is to have the X-axis of the camera frame pointing to the right, the Y-axis downward and the Z-axis forward).
|
||||
|
||||

|
||||

|
||||
|
||||
Points expressed in the world frame \f$ \bf{X}_w \f$ are projected into the image plane \f$ \left[ u, v \right] \f$
|
||||
using the perspective projection model \f$ \Pi \f$ and the camera intrinsic parameters matrix \f$ \bf{A} \f$ (also denoted \f$ \bf{K} \f$ in the literature):
|
||||
|
|
|
|||
|
|
@ -483,6 +483,9 @@ f_{\text{mm}} = \frac{\text{sensor_size_in_mm}}{2 \times \tan{\frac{\text{fov}}{
|
|||
|
||||
This latter conversion can be useful when using a rendering software to mimic a physical camera device.
|
||||
|
||||
@note
|
||||
- See also #calibrationMatrixValues
|
||||
|
||||
<B> Additional references, notes </B><br>
|
||||
@note
|
||||
- Many functions in this module take a camera intrinsic matrix as an input parameter. Although all
|
||||
|
|
@ -999,7 +1002,9 @@ An example program about homography from the camera displacement
|
|||
Check @ref tutorial_homography "the corresponding tutorial" for more details
|
||||
*/
|
||||
|
||||
/** @brief Finds an object pose from 3D-2D point correspondences.
|
||||
/** @brief Finds an object pose \f$ {}^{c}\mathbf{T}_o \f$ from 3D-2D point correspondences:
|
||||
|
||||
{ width=50% }
|
||||
|
||||
@see @ref calib3d_solvePnP
|
||||
|
||||
|
|
@ -1062,14 +1067,16 @@ More information about Perspective-n-Points is described in @ref calib3d_solvePn
|
|||
- point 1: [ squareLength / 2, squareLength / 2, 0]
|
||||
- point 2: [ squareLength / 2, -squareLength / 2, 0]
|
||||
- point 3: [-squareLength / 2, -squareLength / 2, 0]
|
||||
- With @ref SOLVEPNP_SQPNP input points must be >= 3
|
||||
- With @ref SOLVEPNP_SQPNP input points must be >= 3
|
||||
*/
|
||||
CV_EXPORTS_W bool solvePnP( InputArray objectPoints, InputArray imagePoints,
|
||||
InputArray cameraMatrix, InputArray distCoeffs,
|
||||
OutputArray rvec, OutputArray tvec,
|
||||
bool useExtrinsicGuess = false, int flags = SOLVEPNP_ITERATIVE );
|
||||
|
||||
/** @brief Finds an object pose from 3D-2D point correspondences using the RANSAC scheme.
|
||||
/** @brief Finds an object pose \f$ {}^{c}\mathbf{T}_o \f$ from 3D-2D point correspondences using the RANSAC scheme to deal with bad matches.
|
||||
|
||||
{ width=50% }
|
||||
|
||||
@see @ref calib3d_solvePnP
|
||||
|
||||
|
|
@ -1102,8 +1109,8 @@ projections imagePoints and the projected (using @ref projectPoints ) objectPoin
|
|||
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/
|
||||
- An example of how to use solvePnPRansac for object detection can be found at
|
||||
@ref tutorial_real_time_pose
|
||||
- The default method used to estimate the camera pose for the Minimal Sample Sets step
|
||||
is #SOLVEPNP_EPNP. Exceptions are:
|
||||
- if you choose #SOLVEPNP_P3P or #SOLVEPNP_AP3P, these methods will be used.
|
||||
|
|
@ -1129,7 +1136,9 @@ CV_EXPORTS_W bool solvePnPRansac( InputArray objectPoints, InputArray imagePoint
|
|||
OutputArray rvec, OutputArray tvec, OutputArray inliers,
|
||||
const UsacParams ¶ms=UsacParams());
|
||||
|
||||
/** @brief Finds an object pose from 3 3D-2D point correspondences.
|
||||
/** @brief Finds an object pose \f$ {}^{c}\mathbf{T}_o \f$ from **3** 3D-2D point correspondences.
|
||||
|
||||
{ width=50% }
|
||||
|
||||
@see @ref calib3d_solvePnP
|
||||
|
||||
|
|
@ -1222,7 +1231,9 @@ CV_EXPORTS_W void solvePnPRefineVVS( InputArray objectPoints, InputArray imagePo
|
|||
TermCriteria criteria = TermCriteria(TermCriteria::EPS + TermCriteria::COUNT, 20, FLT_EPSILON),
|
||||
double VVSlambda = 1);
|
||||
|
||||
/** @brief Finds an object pose from 3D-2D point correspondences.
|
||||
/** @brief Finds an object pose \f$ {}^{c}\mathbf{T}_o \f$ from 3D-2D point correspondences.
|
||||
|
||||
{ width=50% }
|
||||
|
||||
@see @ref calib3d_solvePnP
|
||||
|
||||
|
|
@ -1293,6 +1304,7 @@ More information is described in @ref calib3d_solvePnP
|
|||
- point 1: [ squareLength / 2, squareLength / 2, 0]
|
||||
- point 2: [ squareLength / 2, -squareLength / 2, 0]
|
||||
- point 3: [-squareLength / 2, -squareLength / 2, 0]
|
||||
- With @ref SOLVEPNP_SQPNP input points must be >= 3
|
||||
*/
|
||||
CV_EXPORTS_W int solvePnPGeneric( InputArray objectPoints, InputArray imagePoints,
|
||||
InputArray cameraMatrix, InputArray distCoeffs,
|
||||
|
|
@ -1373,7 +1385,8 @@ the board to make the detection more robust in various environments. Otherwise,
|
|||
border and the background is dark, the outer black squares cannot be segmented properly and so the
|
||||
square grouping and ordering algorithm fails.
|
||||
|
||||
Use gen_pattern.py (@ref tutorial_camera_calibration_pattern) to create checkerboard.
|
||||
Use the `gen_pattern.py` Python script (@ref tutorial_camera_calibration_pattern)
|
||||
to create the desired checkerboard pattern.
|
||||
*/
|
||||
CV_EXPORTS_W bool findChessboardCorners( InputArray image, Size patternSize, OutputArray corners,
|
||||
int flags = CALIB_CB_ADAPTIVE_THRESH + CALIB_CB_NORMALIZE_IMAGE );
|
||||
|
|
@ -1431,8 +1444,9 @@ which are located on the outside of the board. The following figure illustrates
|
|||
a sample checkerboard optimized for the detection. However, any other checkerboard
|
||||
can be used as well.
|
||||
|
||||
Use gen_pattern.py (@ref tutorial_camera_calibration_pattern) to create checkerboard.
|
||||

|
||||
Use the `gen_pattern.py` Python script (@ref tutorial_camera_calibration_pattern)
|
||||
to create the corresponding checkerboard pattern:
|
||||
\image html pics/checkerboard_radon.png width=60%
|
||||
*/
|
||||
CV_EXPORTS_AS(findChessboardCornersSBWithMeta)
|
||||
bool findChessboardCornersSB(InputArray image,Size patternSize, OutputArray corners,
|
||||
|
|
@ -4248,9 +4262,9 @@ optimization. It is the \f$max(width,height)/\pi\f$ or the provided \f$f_x\f$, \
|
|||
@brief Finds an object pose from 3D-2D point correspondences for fisheye camera moodel.
|
||||
|
||||
@param objectPoints Array of object points in the object coordinate space, Nx3 1-channel or
|
||||
1xN/Nx1 3-channel, where N is the number of points. vector\<Point3d\> can be also passed here.
|
||||
1xN/Nx1 3-channel, where N is the number of points. vector\<Point3d\> can also be passed here.
|
||||
@param imagePoints Array of corresponding image points, Nx2 1-channel or 1xN/Nx1 2-channel,
|
||||
where N is the number of points. vector\<Point2d\> can be also passed here.
|
||||
where N is the number of points. vector\<Point2d\> can also be passed here.
|
||||
@param cameraMatrix Input camera intrinsic matrix \f$\cameramatrix{A}\f$ .
|
||||
@param distCoeffs Input vector of distortion coefficients (4x1/1x4).
|
||||
@param rvec Output rotation vector (see @ref Rodrigues ) that, together with tvec, brings points from
|
||||
|
|
|
|||
|
|
@ -120,7 +120,7 @@ void drawFrameAxes(InputOutputArray image, InputArray cameraMatrix, InputArray d
|
|||
|
||||
if (!allIn)
|
||||
{
|
||||
CV_LOG_WARNING(NULL, "Some of projected axes endpoints are out of frame. The drawn axes may be not relaible.");
|
||||
CV_LOG_WARNING(NULL, "Some of projected axes endpoints are out of frame. The drawn axes may be not reliable.");
|
||||
}
|
||||
|
||||
// draw axes lines
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user