From 650bf4308f6fd7a9af2600dcd642505b0ed57e36 Mon Sep 17 00:00:00 2001 From: catree Date: Wed, 6 Feb 2019 16:09:16 +0100 Subject: [PATCH] Update code to take into account solvePnP and solvePnPRansac use InputOutputArray for rvec and tvec parameters. --- modules/aruco/include/opencv2/aruco.hpp | 4 ++-- .../aruco/include/opencv2/aruco/charuco.hpp | 4 ++-- modules/aruco/src/aruco.cpp | 4 ++-- modules/aruco/src/charuco.cpp | 2 +- modules/ccalib/include/opencv2/ccalib.hpp | 20 +++++++++---------- modules/ccalib/src/ccalib.cpp | 16 +++++++-------- 6 files changed, 25 insertions(+), 25 deletions(-) diff --git a/modules/aruco/include/opencv2/aruco.hpp b/modules/aruco/include/opencv2/aruco.hpp index ba802a6fb..354fea0a9 100644 --- a/modules/aruco/include/opencv2/aruco.hpp +++ b/modules/aruco/include/opencv2/aruco.hpp @@ -387,8 +387,8 @@ class CV_EXPORTS_W GridBoard : public Board { * Note that returning a 0 means the pose has not been estimated. */ CV_EXPORTS_W int estimatePoseBoard(InputArrayOfArrays corners, InputArray ids, const Ptr &board, - InputArray cameraMatrix, InputArray distCoeffs, OutputArray rvec, - OutputArray tvec, bool useExtrinsicGuess = false); + InputArray cameraMatrix, InputArray distCoeffs, InputOutputArray rvec, + InputOutputArray tvec, bool useExtrinsicGuess = false); diff --git a/modules/aruco/include/opencv2/aruco/charuco.hpp b/modules/aruco/include/opencv2/aruco/charuco.hpp index be535c760..22e0d052f 100644 --- a/modules/aruco/include/opencv2/aruco/charuco.hpp +++ b/modules/aruco/include/opencv2/aruco/charuco.hpp @@ -184,8 +184,8 @@ CV_EXPORTS_W int interpolateCornersCharuco(InputArrayOfArrays markerCorners, Inp */ CV_EXPORTS_W bool estimatePoseCharucoBoard(InputArray charucoCorners, InputArray charucoIds, const Ptr &board, InputArray cameraMatrix, - InputArray distCoeffs, OutputArray rvec, OutputArray tvec, - bool useExtrinsicGuess = false); + InputArray distCoeffs, InputOutputArray rvec, + InputOutputArray tvec, bool useExtrinsicGuess = false); diff --git a/modules/aruco/src/aruco.cpp b/modules/aruco/src/aruco.cpp index 76cd9edb3..4ccdb477f 100644 --- a/modules/aruco/src/aruco.cpp +++ b/modules/aruco/src/aruco.cpp @@ -1579,8 +1579,8 @@ void refineDetectedMarkers(InputArray _image, const Ptr &_board, /** */ int estimatePoseBoard(InputArrayOfArrays _corners, InputArray _ids, const Ptr &board, - InputArray _cameraMatrix, InputArray _distCoeffs, OutputArray _rvec, - OutputArray _tvec, bool useExtrinsicGuess) { + InputArray _cameraMatrix, InputArray _distCoeffs, InputOutputArray _rvec, + InputOutputArray _tvec, bool useExtrinsicGuess) { CV_Assert(_corners.total() == _ids.total()); diff --git a/modules/aruco/src/charuco.cpp b/modules/aruco/src/charuco.cpp index 5e5f01a9a..184a50f67 100644 --- a/modules/aruco/src/charuco.cpp +++ b/modules/aruco/src/charuco.cpp @@ -656,7 +656,7 @@ static bool _arePointsEnoughForPoseEstimation(const vector< Point3f > &points) { */ bool estimatePoseCharucoBoard(InputArray _charucoCorners, InputArray _charucoIds, const Ptr &_board, InputArray _cameraMatrix, InputArray _distCoeffs, - OutputArray _rvec, OutputArray _tvec, bool useExtrinsicGuess) { + InputOutputArray _rvec, InputOutputArray _tvec, bool useExtrinsicGuess) { CV_Assert((_charucoCorners.getMat().total() == _charucoIds.getMat().total())); diff --git a/modules/ccalib/include/opencv2/ccalib.hpp b/modules/ccalib/include/opencv2/ccalib.hpp index c9b9391cb..538ec0f81 100644 --- a/modules/ccalib/include/opencv2/ccalib.hpp +++ b/modules/ccalib/include/opencv2/ccalib.hpp @@ -96,21 +96,21 @@ public: Calls the calirateCamera function with the same inputs. */ - bool findRt(InputArray objectPoints, InputArray imagePoints, InputArray cameraMatrix, InputArray distCoeffs, - OutputArray rvec, OutputArray tvec, bool useExtrinsicGuess = false, int flags = SOLVEPNP_ITERATIVE); - bool findRt(InputArray image, InputArray cameraMatrix, InputArray distCoeffs, - OutputArray rvec, OutputArray tvec, bool useExtrinsicGuess = false, int flags = SOLVEPNP_ITERATIVE); + bool findRt(InputArray objectPoints, InputArray imagePoints, InputArray cameraMatrix, InputArray distCoeffs, + InputOutputArray rvec, InputOutputArray tvec, bool useExtrinsicGuess = false, int flags = SOLVEPNP_ITERATIVE); + bool findRt(InputArray image, InputArray cameraMatrix, InputArray distCoeffs, + InputOutputArray rvec, InputOutputArray tvec, bool useExtrinsicGuess = false, int flags = SOLVEPNP_ITERATIVE); /**< Uses solvePnP to find the rotation and translation of the pattern with respect to the camera frame. */ - bool findRtRANSAC(InputArray objectPoints, InputArray imagePoints, InputArray cameraMatrix, InputArray distCoeffs, - OutputArray rvec, OutputArray tvec, bool useExtrinsicGuess = false, int iterationsCount = 100, - float reprojectionError = 8.0, int minInliersCount = 100, OutputArray inliers = noArray(), int flags = SOLVEPNP_ITERATIVE); - bool findRtRANSAC(InputArray image, InputArray cameraMatrix, InputArray distCoeffs, - OutputArray rvec, OutputArray tvec, bool useExtrinsicGuess = false, int iterationsCount = 100, - float reprojectionError = 8.0, int minInliersCount = 100, OutputArray inliers = noArray(), int flags = SOLVEPNP_ITERATIVE); + bool findRtRANSAC(InputArray objectPoints, InputArray imagePoints, InputArray cameraMatrix, InputArray distCoeffs, + InputOutputArray rvec, InputOutputArray tvec, bool useExtrinsicGuess = false, int iterationsCount = 100, + float reprojectionError = 8.0, int minInliersCount = 100, OutputArray inliers = noArray(), int flags = SOLVEPNP_ITERATIVE); + bool findRtRANSAC(InputArray image, InputArray cameraMatrix, InputArray distCoeffs, + InputOutputArray rvec, InputOutputArray tvec, bool useExtrinsicGuess = false, int iterationsCount = 100, + float reprojectionError = 8.0, int minInliersCount = 100, OutputArray inliers = noArray(), int flags = SOLVEPNP_ITERATIVE); /**< Uses solvePnPRansac() */ diff --git a/modules/ccalib/src/ccalib.cpp b/modules/ccalib/src/ccalib.cpp index 249d5b14a..03f1414d8 100644 --- a/modules/ccalib/src/ccalib.cpp +++ b/modules/ccalib/src/ccalib.cpp @@ -425,13 +425,13 @@ double CustomPattern::calibrate(InputArrayOfArrays objectPoints, InputArrayOfArr } bool CustomPattern::findRt(InputArray objectPoints, InputArray imagePoints, InputArray cameraMatrix, - InputArray distCoeffs, OutputArray rvec, OutputArray tvec, bool useExtrinsicGuess, int flags) + InputArray distCoeffs, InputOutputArray rvec, InputOutputArray tvec, bool useExtrinsicGuess, int flags) { return solvePnP(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec, tvec, useExtrinsicGuess, flags); } bool CustomPattern::findRt(InputArray image, InputArray cameraMatrix, InputArray distCoeffs, - OutputArray rvec, OutputArray tvec, bool useExtrinsicGuess, int flags) + InputOutputArray rvec, InputOutputArray tvec, bool useExtrinsicGuess, int flags) { vector imagePoints; vector objectPoints; @@ -442,17 +442,17 @@ bool CustomPattern::findRt(InputArray image, InputArray cameraMatrix, InputArray } bool CustomPattern::findRtRANSAC(InputArray objectPoints, InputArray imagePoints, InputArray cameraMatrix, InputArray distCoeffs, - OutputArray rvec, OutputArray tvec, bool useExtrinsicGuess, int iterationsCount, - float reprojectionError, int minInliersCount, OutputArray inliers, int flags) + InputOutputArray rvec, InputOutputArray tvec, bool useExtrinsicGuess, int iterationsCount, + float reprojectionError, int minInliersCount, OutputArray inliers, int flags) { solvePnPRansac(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec, tvec, useExtrinsicGuess, - iterationsCount, reprojectionError, minInliersCount, inliers, flags); + iterationsCount, reprojectionError, minInliersCount, inliers, flags); return true; // for consistency with the other methods } bool CustomPattern::findRtRANSAC(InputArray image, InputArray cameraMatrix, InputArray distCoeffs, - OutputArray rvec, OutputArray tvec, bool useExtrinsicGuess, int iterationsCount, - float reprojectionError, int minInliersCount, OutputArray inliers, int flags) + InputOutputArray rvec, InputOutputArray tvec, bool useExtrinsicGuess, int iterationsCount, + float reprojectionError, int minInliersCount, OutputArray inliers, int flags) { vector imagePoints; vector objectPoints; @@ -460,7 +460,7 @@ bool CustomPattern::findRtRANSAC(InputArray image, InputArray cameraMatrix, Inpu if (!findPattern(image, imagePoints, objectPoints)) return false; solvePnPRansac(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec, tvec, useExtrinsicGuess, - iterationsCount, reprojectionError, minInliersCount, inliers, flags); + iterationsCount, reprojectionError, minInliersCount, inliers, flags); return true; }