001// 002// This file is auto-generated. Please don't modify it! 003// 004package org.opencv.aruco; 005 006import java.util.ArrayList; 007import java.util.List; 008import org.opencv.aruco.EstimateParameters; 009import org.opencv.core.Mat; 010import org.opencv.core.Size; 011import org.opencv.core.TermCriteria; 012import org.opencv.objdetect.Board; 013import org.opencv.objdetect.CharucoBoard; 014import org.opencv.objdetect.DetectorParameters; 015import org.opencv.objdetect.Dictionary; 016import org.opencv.utils.Converters; 017 018// C++: class Aruco 019 020public class Aruco { 021 022 // C++: enum PatternPositionType (cv.aruco.PatternPositionType) 023 public static final int 024 ARUCO_CCW_CENTER = 0, 025 ARUCO_CW_TOP_LEFT_CORNER = 1; 026 027 028 // 029 // C++: void cv::aruco::detectMarkers(Mat image, Ptr_Dictionary dictionary, vector_Mat& corners, Mat& ids, Ptr_DetectorParameters parameters = makePtr<DetectorParameters>(), vector_Mat& rejectedImgPoints = vector_Mat()) 030 // 031 032 /** 033 * detect markers 034 * @deprecated Use class ArucoDetector::detectMarkers 035 * @param image automatically generated 036 * @param dictionary automatically generated 037 * @param corners automatically generated 038 * @param ids automatically generated 039 * @param parameters automatically generated 040 * @param rejectedImgPoints automatically generated 041 */ 042 @Deprecated 043 public static void detectMarkers(Mat image, Dictionary dictionary, List<Mat> corners, Mat ids, DetectorParameters parameters, List<Mat> rejectedImgPoints) { 044 Mat corners_mat = new Mat(); 045 Mat rejectedImgPoints_mat = new Mat(); 046 detectMarkers_0(image.nativeObj, dictionary.getNativeObjAddr(), corners_mat.nativeObj, ids.nativeObj, parameters.getNativeObjAddr(), rejectedImgPoints_mat.nativeObj); 047 Converters.Mat_to_vector_Mat(corners_mat, corners); 048 corners_mat.release(); 049 Converters.Mat_to_vector_Mat(rejectedImgPoints_mat, rejectedImgPoints); 050 rejectedImgPoints_mat.release(); 051 } 052 053 /** 054 * detect markers 055 * @deprecated Use class ArucoDetector::detectMarkers 056 * @param image automatically generated 057 * @param dictionary automatically generated 058 * @param corners automatically generated 059 * @param ids automatically generated 060 * @param parameters automatically generated 061 */ 062 @Deprecated 063 public static void detectMarkers(Mat image, Dictionary dictionary, List<Mat> corners, Mat ids, DetectorParameters parameters) { 064 Mat corners_mat = new Mat(); 065 detectMarkers_1(image.nativeObj, dictionary.getNativeObjAddr(), corners_mat.nativeObj, ids.nativeObj, parameters.getNativeObjAddr()); 066 Converters.Mat_to_vector_Mat(corners_mat, corners); 067 corners_mat.release(); 068 } 069 070 /** 071 * detect markers 072 * @deprecated Use class ArucoDetector::detectMarkers 073 * @param image automatically generated 074 * @param dictionary automatically generated 075 * @param corners automatically generated 076 * @param ids automatically generated 077 */ 078 @Deprecated 079 public static void detectMarkers(Mat image, Dictionary dictionary, List<Mat> corners, Mat ids) { 080 Mat corners_mat = new Mat(); 081 detectMarkers_2(image.nativeObj, dictionary.getNativeObjAddr(), corners_mat.nativeObj, ids.nativeObj); 082 Converters.Mat_to_vector_Mat(corners_mat, corners); 083 corners_mat.release(); 084 } 085 086 087 // 088 // C++: void cv::aruco::refineDetectedMarkers(Mat image, Ptr_Board board, vector_Mat& detectedCorners, Mat& detectedIds, vector_Mat& rejectedCorners, Mat cameraMatrix = Mat(), Mat distCoeffs = Mat(), float minRepDistance = 10.f, float errorCorrectionRate = 3.f, bool checkAllOrders = true, Mat& recoveredIdxs = Mat(), Ptr_DetectorParameters parameters = makePtr<DetectorParameters>()) 089 // 090 091 /** 092 * refine detected markers 093 * @deprecated Use class ArucoDetector::refineDetectedMarkers 094 * @param image automatically generated 095 * @param board automatically generated 096 * @param detectedCorners automatically generated 097 * @param detectedIds automatically generated 098 * @param rejectedCorners automatically generated 099 * @param cameraMatrix automatically generated 100 * @param distCoeffs automatically generated 101 * @param minRepDistance automatically generated 102 * @param errorCorrectionRate automatically generated 103 * @param checkAllOrders automatically generated 104 * @param recoveredIdxs automatically generated 105 * @param parameters automatically generated 106 */ 107 @Deprecated 108 public static void refineDetectedMarkers(Mat image, Board board, List<Mat> detectedCorners, Mat detectedIds, List<Mat> rejectedCorners, Mat cameraMatrix, Mat distCoeffs, float minRepDistance, float errorCorrectionRate, boolean checkAllOrders, Mat recoveredIdxs, DetectorParameters parameters) { 109 Mat detectedCorners_mat = Converters.vector_Mat_to_Mat(detectedCorners); 110 Mat rejectedCorners_mat = Converters.vector_Mat_to_Mat(rejectedCorners); 111 refineDetectedMarkers_0(image.nativeObj, board.getNativeObjAddr(), detectedCorners_mat.nativeObj, detectedIds.nativeObj, rejectedCorners_mat.nativeObj, cameraMatrix.nativeObj, distCoeffs.nativeObj, minRepDistance, errorCorrectionRate, checkAllOrders, recoveredIdxs.nativeObj, parameters.getNativeObjAddr()); 112 Converters.Mat_to_vector_Mat(detectedCorners_mat, detectedCorners); 113 detectedCorners_mat.release(); 114 Converters.Mat_to_vector_Mat(rejectedCorners_mat, rejectedCorners); 115 rejectedCorners_mat.release(); 116 } 117 118 /** 119 * refine detected markers 120 * @deprecated Use class ArucoDetector::refineDetectedMarkers 121 * @param image automatically generated 122 * @param board automatically generated 123 * @param detectedCorners automatically generated 124 * @param detectedIds automatically generated 125 * @param rejectedCorners automatically generated 126 * @param cameraMatrix automatically generated 127 * @param distCoeffs automatically generated 128 * @param minRepDistance automatically generated 129 * @param errorCorrectionRate automatically generated 130 * @param checkAllOrders automatically generated 131 * @param recoveredIdxs automatically generated 132 */ 133 @Deprecated 134 public static void refineDetectedMarkers(Mat image, Board board, List<Mat> detectedCorners, Mat detectedIds, List<Mat> rejectedCorners, Mat cameraMatrix, Mat distCoeffs, float minRepDistance, float errorCorrectionRate, boolean checkAllOrders, Mat recoveredIdxs) { 135 Mat detectedCorners_mat = Converters.vector_Mat_to_Mat(detectedCorners); 136 Mat rejectedCorners_mat = Converters.vector_Mat_to_Mat(rejectedCorners); 137 refineDetectedMarkers_1(image.nativeObj, board.getNativeObjAddr(), detectedCorners_mat.nativeObj, detectedIds.nativeObj, rejectedCorners_mat.nativeObj, cameraMatrix.nativeObj, distCoeffs.nativeObj, minRepDistance, errorCorrectionRate, checkAllOrders, recoveredIdxs.nativeObj); 138 Converters.Mat_to_vector_Mat(detectedCorners_mat, detectedCorners); 139 detectedCorners_mat.release(); 140 Converters.Mat_to_vector_Mat(rejectedCorners_mat, rejectedCorners); 141 rejectedCorners_mat.release(); 142 } 143 144 /** 145 * refine detected markers 146 * @deprecated Use class ArucoDetector::refineDetectedMarkers 147 * @param image automatically generated 148 * @param board automatically generated 149 * @param detectedCorners automatically generated 150 * @param detectedIds automatically generated 151 * @param rejectedCorners automatically generated 152 * @param cameraMatrix automatically generated 153 * @param distCoeffs automatically generated 154 * @param minRepDistance automatically generated 155 * @param errorCorrectionRate automatically generated 156 * @param checkAllOrders automatically generated 157 */ 158 @Deprecated 159 public static void refineDetectedMarkers(Mat image, Board board, List<Mat> detectedCorners, Mat detectedIds, List<Mat> rejectedCorners, Mat cameraMatrix, Mat distCoeffs, float minRepDistance, float errorCorrectionRate, boolean checkAllOrders) { 160 Mat detectedCorners_mat = Converters.vector_Mat_to_Mat(detectedCorners); 161 Mat rejectedCorners_mat = Converters.vector_Mat_to_Mat(rejectedCorners); 162 refineDetectedMarkers_2(image.nativeObj, board.getNativeObjAddr(), detectedCorners_mat.nativeObj, detectedIds.nativeObj, rejectedCorners_mat.nativeObj, cameraMatrix.nativeObj, distCoeffs.nativeObj, minRepDistance, errorCorrectionRate, checkAllOrders); 163 Converters.Mat_to_vector_Mat(detectedCorners_mat, detectedCorners); 164 detectedCorners_mat.release(); 165 Converters.Mat_to_vector_Mat(rejectedCorners_mat, rejectedCorners); 166 rejectedCorners_mat.release(); 167 } 168 169 /** 170 * refine detected markers 171 * @deprecated Use class ArucoDetector::refineDetectedMarkers 172 * @param image automatically generated 173 * @param board automatically generated 174 * @param detectedCorners automatically generated 175 * @param detectedIds automatically generated 176 * @param rejectedCorners automatically generated 177 * @param cameraMatrix automatically generated 178 * @param distCoeffs automatically generated 179 * @param minRepDistance automatically generated 180 * @param errorCorrectionRate automatically generated 181 */ 182 @Deprecated 183 public static void refineDetectedMarkers(Mat image, Board board, List<Mat> detectedCorners, Mat detectedIds, List<Mat> rejectedCorners, Mat cameraMatrix, Mat distCoeffs, float minRepDistance, float errorCorrectionRate) { 184 Mat detectedCorners_mat = Converters.vector_Mat_to_Mat(detectedCorners); 185 Mat rejectedCorners_mat = Converters.vector_Mat_to_Mat(rejectedCorners); 186 refineDetectedMarkers_3(image.nativeObj, board.getNativeObjAddr(), detectedCorners_mat.nativeObj, detectedIds.nativeObj, rejectedCorners_mat.nativeObj, cameraMatrix.nativeObj, distCoeffs.nativeObj, minRepDistance, errorCorrectionRate); 187 Converters.Mat_to_vector_Mat(detectedCorners_mat, detectedCorners); 188 detectedCorners_mat.release(); 189 Converters.Mat_to_vector_Mat(rejectedCorners_mat, rejectedCorners); 190 rejectedCorners_mat.release(); 191 } 192 193 /** 194 * refine detected markers 195 * @deprecated Use class ArucoDetector::refineDetectedMarkers 196 * @param image automatically generated 197 * @param board automatically generated 198 * @param detectedCorners automatically generated 199 * @param detectedIds automatically generated 200 * @param rejectedCorners automatically generated 201 * @param cameraMatrix automatically generated 202 * @param distCoeffs automatically generated 203 * @param minRepDistance automatically generated 204 */ 205 @Deprecated 206 public static void refineDetectedMarkers(Mat image, Board board, List<Mat> detectedCorners, Mat detectedIds, List<Mat> rejectedCorners, Mat cameraMatrix, Mat distCoeffs, float minRepDistance) { 207 Mat detectedCorners_mat = Converters.vector_Mat_to_Mat(detectedCorners); 208 Mat rejectedCorners_mat = Converters.vector_Mat_to_Mat(rejectedCorners); 209 refineDetectedMarkers_4(image.nativeObj, board.getNativeObjAddr(), detectedCorners_mat.nativeObj, detectedIds.nativeObj, rejectedCorners_mat.nativeObj, cameraMatrix.nativeObj, distCoeffs.nativeObj, minRepDistance); 210 Converters.Mat_to_vector_Mat(detectedCorners_mat, detectedCorners); 211 detectedCorners_mat.release(); 212 Converters.Mat_to_vector_Mat(rejectedCorners_mat, rejectedCorners); 213 rejectedCorners_mat.release(); 214 } 215 216 /** 217 * refine detected markers 218 * @deprecated Use class ArucoDetector::refineDetectedMarkers 219 * @param image automatically generated 220 * @param board automatically generated 221 * @param detectedCorners automatically generated 222 * @param detectedIds automatically generated 223 * @param rejectedCorners automatically generated 224 * @param cameraMatrix automatically generated 225 * @param distCoeffs automatically generated 226 */ 227 @Deprecated 228 public static void refineDetectedMarkers(Mat image, Board board, List<Mat> detectedCorners, Mat detectedIds, List<Mat> rejectedCorners, Mat cameraMatrix, Mat distCoeffs) { 229 Mat detectedCorners_mat = Converters.vector_Mat_to_Mat(detectedCorners); 230 Mat rejectedCorners_mat = Converters.vector_Mat_to_Mat(rejectedCorners); 231 refineDetectedMarkers_5(image.nativeObj, board.getNativeObjAddr(), detectedCorners_mat.nativeObj, detectedIds.nativeObj, rejectedCorners_mat.nativeObj, cameraMatrix.nativeObj, distCoeffs.nativeObj); 232 Converters.Mat_to_vector_Mat(detectedCorners_mat, detectedCorners); 233 detectedCorners_mat.release(); 234 Converters.Mat_to_vector_Mat(rejectedCorners_mat, rejectedCorners); 235 rejectedCorners_mat.release(); 236 } 237 238 /** 239 * refine detected markers 240 * @deprecated Use class ArucoDetector::refineDetectedMarkers 241 * @param image automatically generated 242 * @param board automatically generated 243 * @param detectedCorners automatically generated 244 * @param detectedIds automatically generated 245 * @param rejectedCorners automatically generated 246 * @param cameraMatrix automatically generated 247 */ 248 @Deprecated 249 public static void refineDetectedMarkers(Mat image, Board board, List<Mat> detectedCorners, Mat detectedIds, List<Mat> rejectedCorners, Mat cameraMatrix) { 250 Mat detectedCorners_mat = Converters.vector_Mat_to_Mat(detectedCorners); 251 Mat rejectedCorners_mat = Converters.vector_Mat_to_Mat(rejectedCorners); 252 refineDetectedMarkers_6(image.nativeObj, board.getNativeObjAddr(), detectedCorners_mat.nativeObj, detectedIds.nativeObj, rejectedCorners_mat.nativeObj, cameraMatrix.nativeObj); 253 Converters.Mat_to_vector_Mat(detectedCorners_mat, detectedCorners); 254 detectedCorners_mat.release(); 255 Converters.Mat_to_vector_Mat(rejectedCorners_mat, rejectedCorners); 256 rejectedCorners_mat.release(); 257 } 258 259 /** 260 * refine detected markers 261 * @deprecated Use class ArucoDetector::refineDetectedMarkers 262 * @param image automatically generated 263 * @param board automatically generated 264 * @param detectedCorners automatically generated 265 * @param detectedIds automatically generated 266 * @param rejectedCorners automatically generated 267 */ 268 @Deprecated 269 public static void refineDetectedMarkers(Mat image, Board board, List<Mat> detectedCorners, Mat detectedIds, List<Mat> rejectedCorners) { 270 Mat detectedCorners_mat = Converters.vector_Mat_to_Mat(detectedCorners); 271 Mat rejectedCorners_mat = Converters.vector_Mat_to_Mat(rejectedCorners); 272 refineDetectedMarkers_7(image.nativeObj, board.getNativeObjAddr(), detectedCorners_mat.nativeObj, detectedIds.nativeObj, rejectedCorners_mat.nativeObj); 273 Converters.Mat_to_vector_Mat(detectedCorners_mat, detectedCorners); 274 detectedCorners_mat.release(); 275 Converters.Mat_to_vector_Mat(rejectedCorners_mat, rejectedCorners); 276 rejectedCorners_mat.release(); 277 } 278 279 280 // 281 // C++: void cv::aruco::drawPlanarBoard(Ptr_Board board, Size outSize, Mat& img, int marginSize, int borderBits) 282 // 283 284 /** 285 * draw planar board 286 * @deprecated Use Board::generateImage 287 * @param board automatically generated 288 * @param outSize automatically generated 289 * @param img automatically generated 290 * @param marginSize automatically generated 291 * @param borderBits automatically generated 292 */ 293 @Deprecated 294 public static void drawPlanarBoard(Board board, Size outSize, Mat img, int marginSize, int borderBits) { 295 drawPlanarBoard_0(board.getNativeObjAddr(), outSize.width, outSize.height, img.nativeObj, marginSize, borderBits); 296 } 297 298 299 // 300 // C++: void cv::aruco::getBoardObjectAndImagePoints(Ptr_Board board, vector_Mat detectedCorners, Mat detectedIds, Mat& objPoints, Mat& imgPoints) 301 // 302 303 /** 304 * get board object and image points 305 * @deprecated Use Board::matchImagePoints 306 * @param board automatically generated 307 * @param detectedCorners automatically generated 308 * @param detectedIds automatically generated 309 * @param objPoints automatically generated 310 * @param imgPoints automatically generated 311 */ 312 @Deprecated 313 public static void getBoardObjectAndImagePoints(Board board, List<Mat> detectedCorners, Mat detectedIds, Mat objPoints, Mat imgPoints) { 314 Mat detectedCorners_mat = Converters.vector_Mat_to_Mat(detectedCorners); 315 getBoardObjectAndImagePoints_0(board.getNativeObjAddr(), detectedCorners_mat.nativeObj, detectedIds.nativeObj, objPoints.nativeObj, imgPoints.nativeObj); 316 } 317 318 319 // 320 // C++: int cv::aruco::estimatePoseBoard(vector_Mat corners, Mat ids, Ptr_Board board, Mat cameraMatrix, Mat distCoeffs, Mat& rvec, Mat& tvec, bool useExtrinsicGuess = false) 321 // 322 323 /** 324 * @deprecated Use cv::solvePnP 325 * @param corners automatically generated 326 * @param ids automatically generated 327 * @param board automatically generated 328 * @param cameraMatrix automatically generated 329 * @param distCoeffs automatically generated 330 * @param rvec automatically generated 331 * @param tvec automatically generated 332 * @param useExtrinsicGuess automatically generated 333 * @return automatically generated 334 */ 335 @Deprecated 336 public static int estimatePoseBoard(List<Mat> corners, Mat ids, Board board, Mat cameraMatrix, Mat distCoeffs, Mat rvec, Mat tvec, boolean useExtrinsicGuess) { 337 Mat corners_mat = Converters.vector_Mat_to_Mat(corners); 338 return estimatePoseBoard_0(corners_mat.nativeObj, ids.nativeObj, board.getNativeObjAddr(), cameraMatrix.nativeObj, distCoeffs.nativeObj, rvec.nativeObj, tvec.nativeObj, useExtrinsicGuess); 339 } 340 341 /** 342 * @deprecated Use cv::solvePnP 343 * @param corners automatically generated 344 * @param ids automatically generated 345 * @param board automatically generated 346 * @param cameraMatrix automatically generated 347 * @param distCoeffs automatically generated 348 * @param rvec automatically generated 349 * @param tvec automatically generated 350 * @return automatically generated 351 */ 352 @Deprecated 353 public static int estimatePoseBoard(List<Mat> corners, Mat ids, Board board, Mat cameraMatrix, Mat distCoeffs, Mat rvec, Mat tvec) { 354 Mat corners_mat = Converters.vector_Mat_to_Mat(corners); 355 return estimatePoseBoard_1(corners_mat.nativeObj, ids.nativeObj, board.getNativeObjAddr(), cameraMatrix.nativeObj, distCoeffs.nativeObj, rvec.nativeObj, tvec.nativeObj); 356 } 357 358 359 // 360 // C++: bool cv::aruco::estimatePoseCharucoBoard(Mat charucoCorners, Mat charucoIds, Ptr_CharucoBoard board, Mat cameraMatrix, Mat distCoeffs, Mat& rvec, Mat& tvec, bool useExtrinsicGuess = false) 361 // 362 363 /** 364 * Pose estimation for a ChArUco board given some of their corners 365 * @param charucoCorners vector of detected charuco corners 366 * @param charucoIds list of identifiers for each corner in charucoCorners 367 * @param board layout of ChArUco board. 368 * @param cameraMatrix input 3x3 floating-point camera matrix 369 * \(A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\) 370 * @param distCoeffs vector of distortion coefficients 371 * \((k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\) of 4, 5, 8 or 12 elements 372 * @param rvec Output vector (e.g. cv::Mat) corresponding to the rotation vector of the board 373 * (see cv::Rodrigues). 374 * @param tvec Output vector (e.g. cv::Mat) corresponding to the translation vector of the board. 375 * @param useExtrinsicGuess defines whether initial guess for \b rvec and \b tvec will be used or not. 376 * 377 * This function estimates a Charuco board pose from some detected corners. 378 * The function checks if the input corners are enough and valid to perform pose estimation. 379 * If pose estimation is valid, returns true, else returns false. 380 * SEE: use cv::drawFrameAxes to get world coordinate system axis for object points 381 * @return automatically generated 382 */ 383 public static boolean estimatePoseCharucoBoard(Mat charucoCorners, Mat charucoIds, CharucoBoard board, Mat cameraMatrix, Mat distCoeffs, Mat rvec, Mat tvec, boolean useExtrinsicGuess) { 384 return estimatePoseCharucoBoard_0(charucoCorners.nativeObj, charucoIds.nativeObj, board.getNativeObjAddr(), cameraMatrix.nativeObj, distCoeffs.nativeObj, rvec.nativeObj, tvec.nativeObj, useExtrinsicGuess); 385 } 386 387 /** 388 * Pose estimation for a ChArUco board given some of their corners 389 * @param charucoCorners vector of detected charuco corners 390 * @param charucoIds list of identifiers for each corner in charucoCorners 391 * @param board layout of ChArUco board. 392 * @param cameraMatrix input 3x3 floating-point camera matrix 393 * \(A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\) 394 * @param distCoeffs vector of distortion coefficients 395 * \((k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\) of 4, 5, 8 or 12 elements 396 * @param rvec Output vector (e.g. cv::Mat) corresponding to the rotation vector of the board 397 * (see cv::Rodrigues). 398 * @param tvec Output vector (e.g. cv::Mat) corresponding to the translation vector of the board. 399 * 400 * This function estimates a Charuco board pose from some detected corners. 401 * The function checks if the input corners are enough and valid to perform pose estimation. 402 * If pose estimation is valid, returns true, else returns false. 403 * SEE: use cv::drawFrameAxes to get world coordinate system axis for object points 404 * @return automatically generated 405 */ 406 public static boolean estimatePoseCharucoBoard(Mat charucoCorners, Mat charucoIds, CharucoBoard board, Mat cameraMatrix, Mat distCoeffs, Mat rvec, Mat tvec) { 407 return estimatePoseCharucoBoard_1(charucoCorners.nativeObj, charucoIds.nativeObj, board.getNativeObjAddr(), cameraMatrix.nativeObj, distCoeffs.nativeObj, rvec.nativeObj, tvec.nativeObj); 408 } 409 410 411 // 412 // C++: void cv::aruco::estimatePoseSingleMarkers(vector_Mat corners, float markerLength, Mat cameraMatrix, Mat distCoeffs, Mat& rvecs, Mat& tvecs, Mat& objPoints = Mat(), Ptr_EstimateParameters estimateParameters = makePtr<EstimateParameters>()) 413 // 414 415 /** 416 * @deprecated Use cv::solvePnP 417 * @param corners automatically generated 418 * @param markerLength automatically generated 419 * @param cameraMatrix automatically generated 420 * @param distCoeffs automatically generated 421 * @param rvecs automatically generated 422 * @param tvecs automatically generated 423 * @param objPoints automatically generated 424 * @param estimateParameters automatically generated 425 */ 426 @Deprecated 427 public static void estimatePoseSingleMarkers(List<Mat> corners, float markerLength, Mat cameraMatrix, Mat distCoeffs, Mat rvecs, Mat tvecs, Mat objPoints, EstimateParameters estimateParameters) { 428 Mat corners_mat = Converters.vector_Mat_to_Mat(corners); 429 estimatePoseSingleMarkers_0(corners_mat.nativeObj, markerLength, cameraMatrix.nativeObj, distCoeffs.nativeObj, rvecs.nativeObj, tvecs.nativeObj, objPoints.nativeObj, estimateParameters.getNativeObjAddr()); 430 } 431 432 /** 433 * @deprecated Use cv::solvePnP 434 * @param corners automatically generated 435 * @param markerLength automatically generated 436 * @param cameraMatrix automatically generated 437 * @param distCoeffs automatically generated 438 * @param rvecs automatically generated 439 * @param tvecs automatically generated 440 * @param objPoints automatically generated 441 */ 442 @Deprecated 443 public static void estimatePoseSingleMarkers(List<Mat> corners, float markerLength, Mat cameraMatrix, Mat distCoeffs, Mat rvecs, Mat tvecs, Mat objPoints) { 444 Mat corners_mat = Converters.vector_Mat_to_Mat(corners); 445 estimatePoseSingleMarkers_1(corners_mat.nativeObj, markerLength, cameraMatrix.nativeObj, distCoeffs.nativeObj, rvecs.nativeObj, tvecs.nativeObj, objPoints.nativeObj); 446 } 447 448 /** 449 * @deprecated Use cv::solvePnP 450 * @param corners automatically generated 451 * @param markerLength automatically generated 452 * @param cameraMatrix automatically generated 453 * @param distCoeffs automatically generated 454 * @param rvecs automatically generated 455 * @param tvecs automatically generated 456 */ 457 @Deprecated 458 public static void estimatePoseSingleMarkers(List<Mat> corners, float markerLength, Mat cameraMatrix, Mat distCoeffs, Mat rvecs, Mat tvecs) { 459 Mat corners_mat = Converters.vector_Mat_to_Mat(corners); 460 estimatePoseSingleMarkers_2(corners_mat.nativeObj, markerLength, cameraMatrix.nativeObj, distCoeffs.nativeObj, rvecs.nativeObj, tvecs.nativeObj); 461 } 462 463 464 // 465 // C++: bool cv::aruco::testCharucoCornersCollinear(Ptr_CharucoBoard board, Mat charucoIds) 466 // 467 468 /** 469 * @deprecated Use CharucoBoard::checkCharucoCornersCollinear 470 * @param board automatically generated 471 * @param charucoIds automatically generated 472 * @return automatically generated 473 */ 474 @Deprecated 475 public static boolean testCharucoCornersCollinear(CharucoBoard board, Mat charucoIds) { 476 return testCharucoCornersCollinear_0(board.getNativeObjAddr(), charucoIds.nativeObj); 477 } 478 479 480 // 481 // C++: double cv::aruco::calibrateCameraAruco(vector_Mat corners, Mat ids, Mat counter, Ptr_Board board, Size imageSize, Mat& cameraMatrix, Mat& distCoeffs, vector_Mat& rvecs, vector_Mat& tvecs, Mat& stdDeviationsIntrinsics, Mat& stdDeviationsExtrinsics, Mat& perViewErrors, int flags = 0, TermCriteria criteria = TermCriteria(TermCriteria::COUNT + TermCriteria::EPS, 30, DBL_EPSILON)) 482 // 483 484 /** 485 * Calibrate a camera using aruco markers 486 * 487 * @param corners vector of detected marker corners in all frames. 488 * The corners should have the same format returned by detectMarkers (see #detectMarkers). 489 * @param ids list of identifiers for each marker in corners 490 * @param counter number of markers in each frame so that corners and ids can be split 491 * @param board Marker Board layout 492 * @param imageSize Size of the image used only to initialize the intrinsic camera matrix. 493 * @param cameraMatrix Output 3x3 floating-point camera matrix 494 * \(A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\) . If CV\_CALIB\_USE\_INTRINSIC\_GUESS 495 * and/or CV_CALIB_FIX_ASPECT_RATIO are specified, some or all of fx, fy, cx, cy must be 496 * initialized before calling the function. 497 * @param distCoeffs Output vector of distortion coefficients 498 * \((k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\) of 4, 5, 8 or 12 elements 499 * @param rvecs Output vector of rotation vectors (see Rodrigues ) estimated for each board view 500 * (e.g. std::vector<cv::Mat>>). That is, each k-th rotation vector together with the corresponding 501 * k-th translation vector (see the next output parameter description) brings the board pattern 502 * from the model coordinate space (in which object points are specified) to the world coordinate 503 * space, that is, a real position of the board pattern in the k-th pattern view (k=0.. *M* -1). 504 * @param tvecs Output vector of translation vectors estimated for each pattern view. 505 * @param stdDeviationsIntrinsics Output vector of standard deviations estimated for intrinsic parameters. 506 * Order of deviations values: 507 * \((f_x, f_y, c_x, c_y, k_1, k_2, p_1, p_2, k_3, k_4, k_5, k_6 , s_1, s_2, s_3, 508 * s_4, \tau_x, \tau_y)\) If one of parameters is not estimated, it's deviation is equals to zero. 509 * @param stdDeviationsExtrinsics Output vector of standard deviations estimated for extrinsic parameters. 510 * Order of deviations values: \((R_1, T_1, \dotsc , R_M, T_M)\) where M is number of pattern views, 511 * \(R_i, T_i\) are concatenated 1x3 vectors. 512 * @param perViewErrors Output vector of average re-projection errors estimated for each pattern view. 513 * @param flags flags Different flags for the calibration process (see #calibrateCamera for details). 514 * @param criteria Termination criteria for the iterative optimization algorithm. 515 * 516 * This function calibrates a camera using an Aruco Board. The function receives a list of 517 * detected markers from several views of the Board. The process is similar to the chessboard 518 * calibration in calibrateCamera(). The function returns the final re-projection error. 519 * @return automatically generated 520 */ 521 public static double calibrateCameraArucoExtended(List<Mat> corners, Mat ids, Mat counter, Board board, Size imageSize, Mat cameraMatrix, Mat distCoeffs, List<Mat> rvecs, List<Mat> tvecs, Mat stdDeviationsIntrinsics, Mat stdDeviationsExtrinsics, Mat perViewErrors, int flags, TermCriteria criteria) { 522 Mat corners_mat = Converters.vector_Mat_to_Mat(corners); 523 Mat rvecs_mat = new Mat(); 524 Mat tvecs_mat = new Mat(); 525 double retVal = calibrateCameraArucoExtended_0(corners_mat.nativeObj, ids.nativeObj, counter.nativeObj, board.getNativeObjAddr(), imageSize.width, imageSize.height, cameraMatrix.nativeObj, distCoeffs.nativeObj, rvecs_mat.nativeObj, tvecs_mat.nativeObj, stdDeviationsIntrinsics.nativeObj, stdDeviationsExtrinsics.nativeObj, perViewErrors.nativeObj, flags, criteria.type, criteria.maxCount, criteria.epsilon); 526 Converters.Mat_to_vector_Mat(rvecs_mat, rvecs); 527 rvecs_mat.release(); 528 Converters.Mat_to_vector_Mat(tvecs_mat, tvecs); 529 tvecs_mat.release(); 530 return retVal; 531 } 532 533 /** 534 * Calibrate a camera using aruco markers 535 * 536 * @param corners vector of detected marker corners in all frames. 537 * The corners should have the same format returned by detectMarkers (see #detectMarkers). 538 * @param ids list of identifiers for each marker in corners 539 * @param counter number of markers in each frame so that corners and ids can be split 540 * @param board Marker Board layout 541 * @param imageSize Size of the image used only to initialize the intrinsic camera matrix. 542 * @param cameraMatrix Output 3x3 floating-point camera matrix 543 * \(A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\) . If CV\_CALIB\_USE\_INTRINSIC\_GUESS 544 * and/or CV_CALIB_FIX_ASPECT_RATIO are specified, some or all of fx, fy, cx, cy must be 545 * initialized before calling the function. 546 * @param distCoeffs Output vector of distortion coefficients 547 * \((k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\) of 4, 5, 8 or 12 elements 548 * @param rvecs Output vector of rotation vectors (see Rodrigues ) estimated for each board view 549 * (e.g. std::vector<cv::Mat>>). That is, each k-th rotation vector together with the corresponding 550 * k-th translation vector (see the next output parameter description) brings the board pattern 551 * from the model coordinate space (in which object points are specified) to the world coordinate 552 * space, that is, a real position of the board pattern in the k-th pattern view (k=0.. *M* -1). 553 * @param tvecs Output vector of translation vectors estimated for each pattern view. 554 * @param stdDeviationsIntrinsics Output vector of standard deviations estimated for intrinsic parameters. 555 * Order of deviations values: 556 * \((f_x, f_y, c_x, c_y, k_1, k_2, p_1, p_2, k_3, k_4, k_5, k_6 , s_1, s_2, s_3, 557 * s_4, \tau_x, \tau_y)\) If one of parameters is not estimated, it's deviation is equals to zero. 558 * @param stdDeviationsExtrinsics Output vector of standard deviations estimated for extrinsic parameters. 559 * Order of deviations values: \((R_1, T_1, \dotsc , R_M, T_M)\) where M is number of pattern views, 560 * \(R_i, T_i\) are concatenated 1x3 vectors. 561 * @param perViewErrors Output vector of average re-projection errors estimated for each pattern view. 562 * @param flags flags Different flags for the calibration process (see #calibrateCamera for details). 563 * 564 * This function calibrates a camera using an Aruco Board. The function receives a list of 565 * detected markers from several views of the Board. The process is similar to the chessboard 566 * calibration in calibrateCamera(). The function returns the final re-projection error. 567 * @return automatically generated 568 */ 569 public static double calibrateCameraArucoExtended(List<Mat> corners, Mat ids, Mat counter, Board board, Size imageSize, Mat cameraMatrix, Mat distCoeffs, List<Mat> rvecs, List<Mat> tvecs, Mat stdDeviationsIntrinsics, Mat stdDeviationsExtrinsics, Mat perViewErrors, int flags) { 570 Mat corners_mat = Converters.vector_Mat_to_Mat(corners); 571 Mat rvecs_mat = new Mat(); 572 Mat tvecs_mat = new Mat(); 573 double retVal = calibrateCameraArucoExtended_1(corners_mat.nativeObj, ids.nativeObj, counter.nativeObj, board.getNativeObjAddr(), imageSize.width, imageSize.height, cameraMatrix.nativeObj, distCoeffs.nativeObj, rvecs_mat.nativeObj, tvecs_mat.nativeObj, stdDeviationsIntrinsics.nativeObj, stdDeviationsExtrinsics.nativeObj, perViewErrors.nativeObj, flags); 574 Converters.Mat_to_vector_Mat(rvecs_mat, rvecs); 575 rvecs_mat.release(); 576 Converters.Mat_to_vector_Mat(tvecs_mat, tvecs); 577 tvecs_mat.release(); 578 return retVal; 579 } 580 581 /** 582 * Calibrate a camera using aruco markers 583 * 584 * @param corners vector of detected marker corners in all frames. 585 * The corners should have the same format returned by detectMarkers (see #detectMarkers). 586 * @param ids list of identifiers for each marker in corners 587 * @param counter number of markers in each frame so that corners and ids can be split 588 * @param board Marker Board layout 589 * @param imageSize Size of the image used only to initialize the intrinsic camera matrix. 590 * @param cameraMatrix Output 3x3 floating-point camera matrix 591 * \(A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\) . If CV\_CALIB\_USE\_INTRINSIC\_GUESS 592 * and/or CV_CALIB_FIX_ASPECT_RATIO are specified, some or all of fx, fy, cx, cy must be 593 * initialized before calling the function. 594 * @param distCoeffs Output vector of distortion coefficients 595 * \((k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\) of 4, 5, 8 or 12 elements 596 * @param rvecs Output vector of rotation vectors (see Rodrigues ) estimated for each board view 597 * (e.g. std::vector<cv::Mat>>). That is, each k-th rotation vector together with the corresponding 598 * k-th translation vector (see the next output parameter description) brings the board pattern 599 * from the model coordinate space (in which object points are specified) to the world coordinate 600 * space, that is, a real position of the board pattern in the k-th pattern view (k=0.. *M* -1). 601 * @param tvecs Output vector of translation vectors estimated for each pattern view. 602 * @param stdDeviationsIntrinsics Output vector of standard deviations estimated for intrinsic parameters. 603 * Order of deviations values: 604 * \((f_x, f_y, c_x, c_y, k_1, k_2, p_1, p_2, k_3, k_4, k_5, k_6 , s_1, s_2, s_3, 605 * s_4, \tau_x, \tau_y)\) If one of parameters is not estimated, it's deviation is equals to zero. 606 * @param stdDeviationsExtrinsics Output vector of standard deviations estimated for extrinsic parameters. 607 * Order of deviations values: \((R_1, T_1, \dotsc , R_M, T_M)\) where M is number of pattern views, 608 * \(R_i, T_i\) are concatenated 1x3 vectors. 609 * @param perViewErrors Output vector of average re-projection errors estimated for each pattern view. 610 * 611 * This function calibrates a camera using an Aruco Board. The function receives a list of 612 * detected markers from several views of the Board. The process is similar to the chessboard 613 * calibration in calibrateCamera(). The function returns the final re-projection error. 614 * @return automatically generated 615 */ 616 public static double calibrateCameraArucoExtended(List<Mat> corners, Mat ids, Mat counter, Board board, Size imageSize, Mat cameraMatrix, Mat distCoeffs, List<Mat> rvecs, List<Mat> tvecs, Mat stdDeviationsIntrinsics, Mat stdDeviationsExtrinsics, Mat perViewErrors) { 617 Mat corners_mat = Converters.vector_Mat_to_Mat(corners); 618 Mat rvecs_mat = new Mat(); 619 Mat tvecs_mat = new Mat(); 620 double retVal = calibrateCameraArucoExtended_2(corners_mat.nativeObj, ids.nativeObj, counter.nativeObj, board.getNativeObjAddr(), imageSize.width, imageSize.height, cameraMatrix.nativeObj, distCoeffs.nativeObj, rvecs_mat.nativeObj, tvecs_mat.nativeObj, stdDeviationsIntrinsics.nativeObj, stdDeviationsExtrinsics.nativeObj, perViewErrors.nativeObj); 621 Converters.Mat_to_vector_Mat(rvecs_mat, rvecs); 622 rvecs_mat.release(); 623 Converters.Mat_to_vector_Mat(tvecs_mat, tvecs); 624 tvecs_mat.release(); 625 return retVal; 626 } 627 628 629 // 630 // C++: double cv::aruco::calibrateCameraAruco(vector_Mat corners, Mat ids, Mat counter, Ptr_Board board, Size imageSize, Mat& cameraMatrix, Mat& distCoeffs, vector_Mat& rvecs = vector_Mat(), vector_Mat& tvecs = vector_Mat(), int flags = 0, TermCriteria criteria = TermCriteria(TermCriteria::COUNT + TermCriteria::EPS, 30, DBL_EPSILON)) 631 // 632 633 /** 634 * 635 * It's the same function as #calibrateCameraAruco but without calibration error estimation. 636 * @param corners automatically generated 637 * @param ids automatically generated 638 * @param counter automatically generated 639 * @param board automatically generated 640 * @param imageSize automatically generated 641 * @param cameraMatrix automatically generated 642 * @param distCoeffs automatically generated 643 * @param rvecs automatically generated 644 * @param tvecs automatically generated 645 * @param flags automatically generated 646 * @param criteria automatically generated 647 * @return automatically generated 648 */ 649 public static double calibrateCameraAruco(List<Mat> corners, Mat ids, Mat counter, Board board, Size imageSize, Mat cameraMatrix, Mat distCoeffs, List<Mat> rvecs, List<Mat> tvecs, int flags, TermCriteria criteria) { 650 Mat corners_mat = Converters.vector_Mat_to_Mat(corners); 651 Mat rvecs_mat = new Mat(); 652 Mat tvecs_mat = new Mat(); 653 double retVal = calibrateCameraAruco_0(corners_mat.nativeObj, ids.nativeObj, counter.nativeObj, board.getNativeObjAddr(), imageSize.width, imageSize.height, cameraMatrix.nativeObj, distCoeffs.nativeObj, rvecs_mat.nativeObj, tvecs_mat.nativeObj, flags, criteria.type, criteria.maxCount, criteria.epsilon); 654 Converters.Mat_to_vector_Mat(rvecs_mat, rvecs); 655 rvecs_mat.release(); 656 Converters.Mat_to_vector_Mat(tvecs_mat, tvecs); 657 tvecs_mat.release(); 658 return retVal; 659 } 660 661 /** 662 * 663 * It's the same function as #calibrateCameraAruco but without calibration error estimation. 664 * @param corners automatically generated 665 * @param ids automatically generated 666 * @param counter automatically generated 667 * @param board automatically generated 668 * @param imageSize automatically generated 669 * @param cameraMatrix automatically generated 670 * @param distCoeffs automatically generated 671 * @param rvecs automatically generated 672 * @param tvecs automatically generated 673 * @param flags automatically generated 674 * @return automatically generated 675 */ 676 public static double calibrateCameraAruco(List<Mat> corners, Mat ids, Mat counter, Board board, Size imageSize, Mat cameraMatrix, Mat distCoeffs, List<Mat> rvecs, List<Mat> tvecs, int flags) { 677 Mat corners_mat = Converters.vector_Mat_to_Mat(corners); 678 Mat rvecs_mat = new Mat(); 679 Mat tvecs_mat = new Mat(); 680 double retVal = calibrateCameraAruco_1(corners_mat.nativeObj, ids.nativeObj, counter.nativeObj, board.getNativeObjAddr(), imageSize.width, imageSize.height, cameraMatrix.nativeObj, distCoeffs.nativeObj, rvecs_mat.nativeObj, tvecs_mat.nativeObj, flags); 681 Converters.Mat_to_vector_Mat(rvecs_mat, rvecs); 682 rvecs_mat.release(); 683 Converters.Mat_to_vector_Mat(tvecs_mat, tvecs); 684 tvecs_mat.release(); 685 return retVal; 686 } 687 688 /** 689 * 690 * It's the same function as #calibrateCameraAruco but without calibration error estimation. 691 * @param corners automatically generated 692 * @param ids automatically generated 693 * @param counter automatically generated 694 * @param board automatically generated 695 * @param imageSize automatically generated 696 * @param cameraMatrix automatically generated 697 * @param distCoeffs automatically generated 698 * @param rvecs automatically generated 699 * @param tvecs automatically generated 700 * @return automatically generated 701 */ 702 public static double calibrateCameraAruco(List<Mat> corners, Mat ids, Mat counter, Board board, Size imageSize, Mat cameraMatrix, Mat distCoeffs, List<Mat> rvecs, List<Mat> tvecs) { 703 Mat corners_mat = Converters.vector_Mat_to_Mat(corners); 704 Mat rvecs_mat = new Mat(); 705 Mat tvecs_mat = new Mat(); 706 double retVal = calibrateCameraAruco_2(corners_mat.nativeObj, ids.nativeObj, counter.nativeObj, board.getNativeObjAddr(), imageSize.width, imageSize.height, cameraMatrix.nativeObj, distCoeffs.nativeObj, rvecs_mat.nativeObj, tvecs_mat.nativeObj); 707 Converters.Mat_to_vector_Mat(rvecs_mat, rvecs); 708 rvecs_mat.release(); 709 Converters.Mat_to_vector_Mat(tvecs_mat, tvecs); 710 tvecs_mat.release(); 711 return retVal; 712 } 713 714 /** 715 * 716 * It's the same function as #calibrateCameraAruco but without calibration error estimation. 717 * @param corners automatically generated 718 * @param ids automatically generated 719 * @param counter automatically generated 720 * @param board automatically generated 721 * @param imageSize automatically generated 722 * @param cameraMatrix automatically generated 723 * @param distCoeffs automatically generated 724 * @param rvecs automatically generated 725 * @return automatically generated 726 */ 727 public static double calibrateCameraAruco(List<Mat> corners, Mat ids, Mat counter, Board board, Size imageSize, Mat cameraMatrix, Mat distCoeffs, List<Mat> rvecs) { 728 Mat corners_mat = Converters.vector_Mat_to_Mat(corners); 729 Mat rvecs_mat = new Mat(); 730 double retVal = calibrateCameraAruco_3(corners_mat.nativeObj, ids.nativeObj, counter.nativeObj, board.getNativeObjAddr(), imageSize.width, imageSize.height, cameraMatrix.nativeObj, distCoeffs.nativeObj, rvecs_mat.nativeObj); 731 Converters.Mat_to_vector_Mat(rvecs_mat, rvecs); 732 rvecs_mat.release(); 733 return retVal; 734 } 735 736 /** 737 * 738 * It's the same function as #calibrateCameraAruco but without calibration error estimation. 739 * @param corners automatically generated 740 * @param ids automatically generated 741 * @param counter automatically generated 742 * @param board automatically generated 743 * @param imageSize automatically generated 744 * @param cameraMatrix automatically generated 745 * @param distCoeffs automatically generated 746 * @return automatically generated 747 */ 748 public static double calibrateCameraAruco(List<Mat> corners, Mat ids, Mat counter, Board board, Size imageSize, Mat cameraMatrix, Mat distCoeffs) { 749 Mat corners_mat = Converters.vector_Mat_to_Mat(corners); 750 return calibrateCameraAruco_4(corners_mat.nativeObj, ids.nativeObj, counter.nativeObj, board.getNativeObjAddr(), imageSize.width, imageSize.height, cameraMatrix.nativeObj, distCoeffs.nativeObj); 751 } 752 753 754 // 755 // C++: double cv::aruco::calibrateCameraCharuco(vector_Mat charucoCorners, vector_Mat charucoIds, Ptr_CharucoBoard board, Size imageSize, Mat& cameraMatrix, Mat& distCoeffs, vector_Mat& rvecs, vector_Mat& tvecs, Mat& stdDeviationsIntrinsics, Mat& stdDeviationsExtrinsics, Mat& perViewErrors, int flags = 0, TermCriteria criteria = TermCriteria( TermCriteria::COUNT + TermCriteria::EPS, 30, DBL_EPSILON)) 756 // 757 758 /** 759 * Calibrate a camera using Charuco corners 760 * 761 * @param charucoCorners vector of detected charuco corners per frame 762 * @param charucoIds list of identifiers for each corner in charucoCorners per frame 763 * @param board Marker Board layout 764 * @param imageSize input image size 765 * @param cameraMatrix Output 3x3 floating-point camera matrix 766 * \(A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\) . If CV\_CALIB\_USE\_INTRINSIC\_GUESS 767 * and/or CV_CALIB_FIX_ASPECT_RATIO are specified, some or all of fx, fy, cx, cy must be 768 * initialized before calling the function. 769 * @param distCoeffs Output vector of distortion coefficients 770 * \((k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\) of 4, 5, 8 or 12 elements 771 * @param rvecs Output vector of rotation vectors (see Rodrigues ) estimated for each board view 772 * (e.g. std::vector<cv::Mat>>). That is, each k-th rotation vector together with the corresponding 773 * k-th translation vector (see the next output parameter description) brings the board pattern 774 * from the model coordinate space (in which object points are specified) to the world coordinate 775 * space, that is, a real position of the board pattern in the k-th pattern view (k=0.. *M* -1). 776 * @param tvecs Output vector of translation vectors estimated for each pattern view. 777 * @param stdDeviationsIntrinsics Output vector of standard deviations estimated for intrinsic parameters. 778 * Order of deviations values: 779 * \((f_x, f_y, c_x, c_y, k_1, k_2, p_1, p_2, k_3, k_4, k_5, k_6 , s_1, s_2, s_3, 780 * s_4, \tau_x, \tau_y)\) If one of parameters is not estimated, it's deviation is equals to zero. 781 * @param stdDeviationsExtrinsics Output vector of standard deviations estimated for extrinsic parameters. 782 * Order of deviations values: \((R_1, T_1, \dotsc , R_M, T_M)\) where M is number of pattern views, 783 * \(R_i, T_i\) are concatenated 1x3 vectors. 784 * @param perViewErrors Output vector of average re-projection errors estimated for each pattern view. 785 * @param flags flags Different flags for the calibration process (see #calibrateCamera for details). 786 * @param criteria Termination criteria for the iterative optimization algorithm. 787 * 788 * This function calibrates a camera using a set of corners of a Charuco Board. The function 789 * receives a list of detected corners and its identifiers from several views of the Board. 790 * The function returns the final re-projection error. 791 * @return automatically generated 792 */ 793 public static double calibrateCameraCharucoExtended(List<Mat> charucoCorners, List<Mat> charucoIds, CharucoBoard board, Size imageSize, Mat cameraMatrix, Mat distCoeffs, List<Mat> rvecs, List<Mat> tvecs, Mat stdDeviationsIntrinsics, Mat stdDeviationsExtrinsics, Mat perViewErrors, int flags, TermCriteria criteria) { 794 Mat charucoCorners_mat = Converters.vector_Mat_to_Mat(charucoCorners); 795 Mat charucoIds_mat = Converters.vector_Mat_to_Mat(charucoIds); 796 Mat rvecs_mat = new Mat(); 797 Mat tvecs_mat = new Mat(); 798 double retVal = calibrateCameraCharucoExtended_0(charucoCorners_mat.nativeObj, charucoIds_mat.nativeObj, board.getNativeObjAddr(), imageSize.width, imageSize.height, cameraMatrix.nativeObj, distCoeffs.nativeObj, rvecs_mat.nativeObj, tvecs_mat.nativeObj, stdDeviationsIntrinsics.nativeObj, stdDeviationsExtrinsics.nativeObj, perViewErrors.nativeObj, flags, criteria.type, criteria.maxCount, criteria.epsilon); 799 Converters.Mat_to_vector_Mat(rvecs_mat, rvecs); 800 rvecs_mat.release(); 801 Converters.Mat_to_vector_Mat(tvecs_mat, tvecs); 802 tvecs_mat.release(); 803 return retVal; 804 } 805 806 /** 807 * Calibrate a camera using Charuco corners 808 * 809 * @param charucoCorners vector of detected charuco corners per frame 810 * @param charucoIds list of identifiers for each corner in charucoCorners per frame 811 * @param board Marker Board layout 812 * @param imageSize input image size 813 * @param cameraMatrix Output 3x3 floating-point camera matrix 814 * \(A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\) . If CV\_CALIB\_USE\_INTRINSIC\_GUESS 815 * and/or CV_CALIB_FIX_ASPECT_RATIO are specified, some or all of fx, fy, cx, cy must be 816 * initialized before calling the function. 817 * @param distCoeffs Output vector of distortion coefficients 818 * \((k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\) of 4, 5, 8 or 12 elements 819 * @param rvecs Output vector of rotation vectors (see Rodrigues ) estimated for each board view 820 * (e.g. std::vector<cv::Mat>>). That is, each k-th rotation vector together with the corresponding 821 * k-th translation vector (see the next output parameter description) brings the board pattern 822 * from the model coordinate space (in which object points are specified) to the world coordinate 823 * space, that is, a real position of the board pattern in the k-th pattern view (k=0.. *M* -1). 824 * @param tvecs Output vector of translation vectors estimated for each pattern view. 825 * @param stdDeviationsIntrinsics Output vector of standard deviations estimated for intrinsic parameters. 826 * Order of deviations values: 827 * \((f_x, f_y, c_x, c_y, k_1, k_2, p_1, p_2, k_3, k_4, k_5, k_6 , s_1, s_2, s_3, 828 * s_4, \tau_x, \tau_y)\) If one of parameters is not estimated, it's deviation is equals to zero. 829 * @param stdDeviationsExtrinsics Output vector of standard deviations estimated for extrinsic parameters. 830 * Order of deviations values: \((R_1, T_1, \dotsc , R_M, T_M)\) where M is number of pattern views, 831 * \(R_i, T_i\) are concatenated 1x3 vectors. 832 * @param perViewErrors Output vector of average re-projection errors estimated for each pattern view. 833 * @param flags flags Different flags for the calibration process (see #calibrateCamera for details). 834 * 835 * This function calibrates a camera using a set of corners of a Charuco Board. The function 836 * receives a list of detected corners and its identifiers from several views of the Board. 837 * The function returns the final re-projection error. 838 * @return automatically generated 839 */ 840 public static double calibrateCameraCharucoExtended(List<Mat> charucoCorners, List<Mat> charucoIds, CharucoBoard board, Size imageSize, Mat cameraMatrix, Mat distCoeffs, List<Mat> rvecs, List<Mat> tvecs, Mat stdDeviationsIntrinsics, Mat stdDeviationsExtrinsics, Mat perViewErrors, int flags) { 841 Mat charucoCorners_mat = Converters.vector_Mat_to_Mat(charucoCorners); 842 Mat charucoIds_mat = Converters.vector_Mat_to_Mat(charucoIds); 843 Mat rvecs_mat = new Mat(); 844 Mat tvecs_mat = new Mat(); 845 double retVal = calibrateCameraCharucoExtended_1(charucoCorners_mat.nativeObj, charucoIds_mat.nativeObj, board.getNativeObjAddr(), imageSize.width, imageSize.height, cameraMatrix.nativeObj, distCoeffs.nativeObj, rvecs_mat.nativeObj, tvecs_mat.nativeObj, stdDeviationsIntrinsics.nativeObj, stdDeviationsExtrinsics.nativeObj, perViewErrors.nativeObj, flags); 846 Converters.Mat_to_vector_Mat(rvecs_mat, rvecs); 847 rvecs_mat.release(); 848 Converters.Mat_to_vector_Mat(tvecs_mat, tvecs); 849 tvecs_mat.release(); 850 return retVal; 851 } 852 853 /** 854 * Calibrate a camera using Charuco corners 855 * 856 * @param charucoCorners vector of detected charuco corners per frame 857 * @param charucoIds list of identifiers for each corner in charucoCorners per frame 858 * @param board Marker Board layout 859 * @param imageSize input image size 860 * @param cameraMatrix Output 3x3 floating-point camera matrix 861 * \(A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\) . If CV\_CALIB\_USE\_INTRINSIC\_GUESS 862 * and/or CV_CALIB_FIX_ASPECT_RATIO are specified, some or all of fx, fy, cx, cy must be 863 * initialized before calling the function. 864 * @param distCoeffs Output vector of distortion coefficients 865 * \((k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\) of 4, 5, 8 or 12 elements 866 * @param rvecs Output vector of rotation vectors (see Rodrigues ) estimated for each board view 867 * (e.g. std::vector<cv::Mat>>). That is, each k-th rotation vector together with the corresponding 868 * k-th translation vector (see the next output parameter description) brings the board pattern 869 * from the model coordinate space (in which object points are specified) to the world coordinate 870 * space, that is, a real position of the board pattern in the k-th pattern view (k=0.. *M* -1). 871 * @param tvecs Output vector of translation vectors estimated for each pattern view. 872 * @param stdDeviationsIntrinsics Output vector of standard deviations estimated for intrinsic parameters. 873 * Order of deviations values: 874 * \((f_x, f_y, c_x, c_y, k_1, k_2, p_1, p_2, k_3, k_4, k_5, k_6 , s_1, s_2, s_3, 875 * s_4, \tau_x, \tau_y)\) If one of parameters is not estimated, it's deviation is equals to zero. 876 * @param stdDeviationsExtrinsics Output vector of standard deviations estimated for extrinsic parameters. 877 * Order of deviations values: \((R_1, T_1, \dotsc , R_M, T_M)\) where M is number of pattern views, 878 * \(R_i, T_i\) are concatenated 1x3 vectors. 879 * @param perViewErrors Output vector of average re-projection errors estimated for each pattern view. 880 * 881 * This function calibrates a camera using a set of corners of a Charuco Board. The function 882 * receives a list of detected corners and its identifiers from several views of the Board. 883 * The function returns the final re-projection error. 884 * @return automatically generated 885 */ 886 public static double calibrateCameraCharucoExtended(List<Mat> charucoCorners, List<Mat> charucoIds, CharucoBoard board, Size imageSize, Mat cameraMatrix, Mat distCoeffs, List<Mat> rvecs, List<Mat> tvecs, Mat stdDeviationsIntrinsics, Mat stdDeviationsExtrinsics, Mat perViewErrors) { 887 Mat charucoCorners_mat = Converters.vector_Mat_to_Mat(charucoCorners); 888 Mat charucoIds_mat = Converters.vector_Mat_to_Mat(charucoIds); 889 Mat rvecs_mat = new Mat(); 890 Mat tvecs_mat = new Mat(); 891 double retVal = calibrateCameraCharucoExtended_2(charucoCorners_mat.nativeObj, charucoIds_mat.nativeObj, board.getNativeObjAddr(), imageSize.width, imageSize.height, cameraMatrix.nativeObj, distCoeffs.nativeObj, rvecs_mat.nativeObj, tvecs_mat.nativeObj, stdDeviationsIntrinsics.nativeObj, stdDeviationsExtrinsics.nativeObj, perViewErrors.nativeObj); 892 Converters.Mat_to_vector_Mat(rvecs_mat, rvecs); 893 rvecs_mat.release(); 894 Converters.Mat_to_vector_Mat(tvecs_mat, tvecs); 895 tvecs_mat.release(); 896 return retVal; 897 } 898 899 900 // 901 // C++: double cv::aruco::calibrateCameraCharuco(vector_Mat charucoCorners, vector_Mat charucoIds, Ptr_CharucoBoard board, Size imageSize, Mat& cameraMatrix, Mat& distCoeffs, vector_Mat& rvecs = vector_Mat(), vector_Mat& tvecs = vector_Mat(), int flags = 0, TermCriteria criteria = TermCriteria(TermCriteria::COUNT + TermCriteria::EPS, 30, DBL_EPSILON)) 902 // 903 904 /** 905 * It's the same function as #calibrateCameraCharuco but without calibration error estimation. 906 * @param charucoCorners automatically generated 907 * @param charucoIds automatically generated 908 * @param board automatically generated 909 * @param imageSize automatically generated 910 * @param cameraMatrix automatically generated 911 * @param distCoeffs automatically generated 912 * @param rvecs automatically generated 913 * @param tvecs automatically generated 914 * @param flags automatically generated 915 * @param criteria automatically generated 916 * @return automatically generated 917 */ 918 public static double calibrateCameraCharuco(List<Mat> charucoCorners, List<Mat> charucoIds, CharucoBoard board, Size imageSize, Mat cameraMatrix, Mat distCoeffs, List<Mat> rvecs, List<Mat> tvecs, int flags, TermCriteria criteria) { 919 Mat charucoCorners_mat = Converters.vector_Mat_to_Mat(charucoCorners); 920 Mat charucoIds_mat = Converters.vector_Mat_to_Mat(charucoIds); 921 Mat rvecs_mat = new Mat(); 922 Mat tvecs_mat = new Mat(); 923 double retVal = calibrateCameraCharuco_0(charucoCorners_mat.nativeObj, charucoIds_mat.nativeObj, board.getNativeObjAddr(), imageSize.width, imageSize.height, cameraMatrix.nativeObj, distCoeffs.nativeObj, rvecs_mat.nativeObj, tvecs_mat.nativeObj, flags, criteria.type, criteria.maxCount, criteria.epsilon); 924 Converters.Mat_to_vector_Mat(rvecs_mat, rvecs); 925 rvecs_mat.release(); 926 Converters.Mat_to_vector_Mat(tvecs_mat, tvecs); 927 tvecs_mat.release(); 928 return retVal; 929 } 930 931 /** 932 * It's the same function as #calibrateCameraCharuco but without calibration error estimation. 933 * @param charucoCorners automatically generated 934 * @param charucoIds automatically generated 935 * @param board automatically generated 936 * @param imageSize automatically generated 937 * @param cameraMatrix automatically generated 938 * @param distCoeffs automatically generated 939 * @param rvecs automatically generated 940 * @param tvecs automatically generated 941 * @param flags automatically generated 942 * @return automatically generated 943 */ 944 public static double calibrateCameraCharuco(List<Mat> charucoCorners, List<Mat> charucoIds, CharucoBoard board, Size imageSize, Mat cameraMatrix, Mat distCoeffs, List<Mat> rvecs, List<Mat> tvecs, int flags) { 945 Mat charucoCorners_mat = Converters.vector_Mat_to_Mat(charucoCorners); 946 Mat charucoIds_mat = Converters.vector_Mat_to_Mat(charucoIds); 947 Mat rvecs_mat = new Mat(); 948 Mat tvecs_mat = new Mat(); 949 double retVal = calibrateCameraCharuco_1(charucoCorners_mat.nativeObj, charucoIds_mat.nativeObj, board.getNativeObjAddr(), imageSize.width, imageSize.height, cameraMatrix.nativeObj, distCoeffs.nativeObj, rvecs_mat.nativeObj, tvecs_mat.nativeObj, flags); 950 Converters.Mat_to_vector_Mat(rvecs_mat, rvecs); 951 rvecs_mat.release(); 952 Converters.Mat_to_vector_Mat(tvecs_mat, tvecs); 953 tvecs_mat.release(); 954 return retVal; 955 } 956 957 /** 958 * It's the same function as #calibrateCameraCharuco but without calibration error estimation. 959 * @param charucoCorners automatically generated 960 * @param charucoIds automatically generated 961 * @param board automatically generated 962 * @param imageSize automatically generated 963 * @param cameraMatrix automatically generated 964 * @param distCoeffs automatically generated 965 * @param rvecs automatically generated 966 * @param tvecs automatically generated 967 * @return automatically generated 968 */ 969 public static double calibrateCameraCharuco(List<Mat> charucoCorners, List<Mat> charucoIds, CharucoBoard board, Size imageSize, Mat cameraMatrix, Mat distCoeffs, List<Mat> rvecs, List<Mat> tvecs) { 970 Mat charucoCorners_mat = Converters.vector_Mat_to_Mat(charucoCorners); 971 Mat charucoIds_mat = Converters.vector_Mat_to_Mat(charucoIds); 972 Mat rvecs_mat = new Mat(); 973 Mat tvecs_mat = new Mat(); 974 double retVal = calibrateCameraCharuco_2(charucoCorners_mat.nativeObj, charucoIds_mat.nativeObj, board.getNativeObjAddr(), imageSize.width, imageSize.height, cameraMatrix.nativeObj, distCoeffs.nativeObj, rvecs_mat.nativeObj, tvecs_mat.nativeObj); 975 Converters.Mat_to_vector_Mat(rvecs_mat, rvecs); 976 rvecs_mat.release(); 977 Converters.Mat_to_vector_Mat(tvecs_mat, tvecs); 978 tvecs_mat.release(); 979 return retVal; 980 } 981 982 /** 983 * It's the same function as #calibrateCameraCharuco but without calibration error estimation. 984 * @param charucoCorners automatically generated 985 * @param charucoIds automatically generated 986 * @param board automatically generated 987 * @param imageSize automatically generated 988 * @param cameraMatrix automatically generated 989 * @param distCoeffs automatically generated 990 * @param rvecs automatically generated 991 * @return automatically generated 992 */ 993 public static double calibrateCameraCharuco(List<Mat> charucoCorners, List<Mat> charucoIds, CharucoBoard board, Size imageSize, Mat cameraMatrix, Mat distCoeffs, List<Mat> rvecs) { 994 Mat charucoCorners_mat = Converters.vector_Mat_to_Mat(charucoCorners); 995 Mat charucoIds_mat = Converters.vector_Mat_to_Mat(charucoIds); 996 Mat rvecs_mat = new Mat(); 997 double retVal = calibrateCameraCharuco_3(charucoCorners_mat.nativeObj, charucoIds_mat.nativeObj, board.getNativeObjAddr(), imageSize.width, imageSize.height, cameraMatrix.nativeObj, distCoeffs.nativeObj, rvecs_mat.nativeObj); 998 Converters.Mat_to_vector_Mat(rvecs_mat, rvecs); 999 rvecs_mat.release(); 1000 return retVal; 1001 } 1002 1003 /** 1004 * It's the same function as #calibrateCameraCharuco but without calibration error estimation. 1005 * @param charucoCorners automatically generated 1006 * @param charucoIds automatically generated 1007 * @param board automatically generated 1008 * @param imageSize automatically generated 1009 * @param cameraMatrix automatically generated 1010 * @param distCoeffs automatically generated 1011 * @return automatically generated 1012 */ 1013 public static double calibrateCameraCharuco(List<Mat> charucoCorners, List<Mat> charucoIds, CharucoBoard board, Size imageSize, Mat cameraMatrix, Mat distCoeffs) { 1014 Mat charucoCorners_mat = Converters.vector_Mat_to_Mat(charucoCorners); 1015 Mat charucoIds_mat = Converters.vector_Mat_to_Mat(charucoIds); 1016 return calibrateCameraCharuco_4(charucoCorners_mat.nativeObj, charucoIds_mat.nativeObj, board.getNativeObjAddr(), imageSize.width, imageSize.height, cameraMatrix.nativeObj, distCoeffs.nativeObj); 1017 } 1018 1019 1020 // 1021 // C++: int cv::aruco::interpolateCornersCharuco(vector_Mat markerCorners, Mat markerIds, Mat image, Ptr_CharucoBoard board, Mat& charucoCorners, Mat& charucoIds, Mat cameraMatrix = Mat(), Mat distCoeffs = Mat(), int minMarkers = 2) 1022 // 1023 1024 /** 1025 * Interpolate position of ChArUco board corners 1026 * @param markerCorners vector of already detected markers corners. For each marker, its four 1027 * corners are provided, (e.g std::vector<std::vector<cv::Point2f> > ). For N detected markers, the 1028 * dimensions of this array should be Nx4. The order of the corners should be clockwise. 1029 * @param markerIds list of identifiers for each marker in corners 1030 * @param image input image necesary for corner refinement. Note that markers are not detected and 1031 * should be sent in corners and ids parameters. 1032 * @param board layout of ChArUco board. 1033 * @param charucoCorners interpolated chessboard corners 1034 * @param charucoIds interpolated chessboard corners identifiers 1035 * @param cameraMatrix optional 3x3 floating-point camera matrix 1036 * \(A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\) 1037 * @param distCoeffs optional vector of distortion coefficients 1038 * \((k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\) of 4, 5, 8 or 12 elements 1039 * @param minMarkers number of adjacent markers that must be detected to return a charuco corner 1040 * 1041 * This function receives the detected markers and returns the 2D position of the chessboard corners 1042 * from a ChArUco board using the detected Aruco markers. If camera parameters are provided, 1043 * the process is based in an approximated pose estimation, else it is based on local homography. 1044 * Only visible corners are returned. For each corner, its corresponding identifier is 1045 * also returned in charucoIds. 1046 * The function returns the number of interpolated corners. 1047 * 1048 * @deprecated Use CharucoDetector::detectBoard 1049 * @return automatically generated 1050 */ 1051 @Deprecated 1052 public static int interpolateCornersCharuco(List<Mat> markerCorners, Mat markerIds, Mat image, CharucoBoard board, Mat charucoCorners, Mat charucoIds, Mat cameraMatrix, Mat distCoeffs, int minMarkers) { 1053 Mat markerCorners_mat = Converters.vector_Mat_to_Mat(markerCorners); 1054 return interpolateCornersCharuco_0(markerCorners_mat.nativeObj, markerIds.nativeObj, image.nativeObj, board.getNativeObjAddr(), charucoCorners.nativeObj, charucoIds.nativeObj, cameraMatrix.nativeObj, distCoeffs.nativeObj, minMarkers); 1055 } 1056 1057 /** 1058 * Interpolate position of ChArUco board corners 1059 * @param markerCorners vector of already detected markers corners. For each marker, its four 1060 * corners are provided, (e.g std::vector<std::vector<cv::Point2f> > ). For N detected markers, the 1061 * dimensions of this array should be Nx4. The order of the corners should be clockwise. 1062 * @param markerIds list of identifiers for each marker in corners 1063 * @param image input image necesary for corner refinement. Note that markers are not detected and 1064 * should be sent in corners and ids parameters. 1065 * @param board layout of ChArUco board. 1066 * @param charucoCorners interpolated chessboard corners 1067 * @param charucoIds interpolated chessboard corners identifiers 1068 * @param cameraMatrix optional 3x3 floating-point camera matrix 1069 * \(A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\) 1070 * @param distCoeffs optional vector of distortion coefficients 1071 * \((k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\) of 4, 5, 8 or 12 elements 1072 * 1073 * This function receives the detected markers and returns the 2D position of the chessboard corners 1074 * from a ChArUco board using the detected Aruco markers. If camera parameters are provided, 1075 * the process is based in an approximated pose estimation, else it is based on local homography. 1076 * Only visible corners are returned. For each corner, its corresponding identifier is 1077 * also returned in charucoIds. 1078 * The function returns the number of interpolated corners. 1079 * 1080 * @deprecated Use CharucoDetector::detectBoard 1081 * @return automatically generated 1082 */ 1083 @Deprecated 1084 public static int interpolateCornersCharuco(List<Mat> markerCorners, Mat markerIds, Mat image, CharucoBoard board, Mat charucoCorners, Mat charucoIds, Mat cameraMatrix, Mat distCoeffs) { 1085 Mat markerCorners_mat = Converters.vector_Mat_to_Mat(markerCorners); 1086 return interpolateCornersCharuco_1(markerCorners_mat.nativeObj, markerIds.nativeObj, image.nativeObj, board.getNativeObjAddr(), charucoCorners.nativeObj, charucoIds.nativeObj, cameraMatrix.nativeObj, distCoeffs.nativeObj); 1087 } 1088 1089 /** 1090 * Interpolate position of ChArUco board corners 1091 * @param markerCorners vector of already detected markers corners. For each marker, its four 1092 * corners are provided, (e.g std::vector<std::vector<cv::Point2f> > ). For N detected markers, the 1093 * dimensions of this array should be Nx4. The order of the corners should be clockwise. 1094 * @param markerIds list of identifiers for each marker in corners 1095 * @param image input image necesary for corner refinement. Note that markers are not detected and 1096 * should be sent in corners and ids parameters. 1097 * @param board layout of ChArUco board. 1098 * @param charucoCorners interpolated chessboard corners 1099 * @param charucoIds interpolated chessboard corners identifiers 1100 * @param cameraMatrix optional 3x3 floating-point camera matrix 1101 * \(A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\) 1102 * \((k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\) of 4, 5, 8 or 12 elements 1103 * 1104 * This function receives the detected markers and returns the 2D position of the chessboard corners 1105 * from a ChArUco board using the detected Aruco markers. If camera parameters are provided, 1106 * the process is based in an approximated pose estimation, else it is based on local homography. 1107 * Only visible corners are returned. For each corner, its corresponding identifier is 1108 * also returned in charucoIds. 1109 * The function returns the number of interpolated corners. 1110 * 1111 * @deprecated Use CharucoDetector::detectBoard 1112 * @return automatically generated 1113 */ 1114 @Deprecated 1115 public static int interpolateCornersCharuco(List<Mat> markerCorners, Mat markerIds, Mat image, CharucoBoard board, Mat charucoCorners, Mat charucoIds, Mat cameraMatrix) { 1116 Mat markerCorners_mat = Converters.vector_Mat_to_Mat(markerCorners); 1117 return interpolateCornersCharuco_2(markerCorners_mat.nativeObj, markerIds.nativeObj, image.nativeObj, board.getNativeObjAddr(), charucoCorners.nativeObj, charucoIds.nativeObj, cameraMatrix.nativeObj); 1118 } 1119 1120 /** 1121 * Interpolate position of ChArUco board corners 1122 * @param markerCorners vector of already detected markers corners. For each marker, its four 1123 * corners are provided, (e.g std::vector<std::vector<cv::Point2f> > ). For N detected markers, the 1124 * dimensions of this array should be Nx4. The order of the corners should be clockwise. 1125 * @param markerIds list of identifiers for each marker in corners 1126 * @param image input image necesary for corner refinement. Note that markers are not detected and 1127 * should be sent in corners and ids parameters. 1128 * @param board layout of ChArUco board. 1129 * @param charucoCorners interpolated chessboard corners 1130 * @param charucoIds interpolated chessboard corners identifiers 1131 * \(A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\) 1132 * \((k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\) of 4, 5, 8 or 12 elements 1133 * 1134 * This function receives the detected markers and returns the 2D position of the chessboard corners 1135 * from a ChArUco board using the detected Aruco markers. If camera parameters are provided, 1136 * the process is based in an approximated pose estimation, else it is based on local homography. 1137 * Only visible corners are returned. For each corner, its corresponding identifier is 1138 * also returned in charucoIds. 1139 * The function returns the number of interpolated corners. 1140 * 1141 * @deprecated Use CharucoDetector::detectBoard 1142 * @return automatically generated 1143 */ 1144 @Deprecated 1145 public static int interpolateCornersCharuco(List<Mat> markerCorners, Mat markerIds, Mat image, CharucoBoard board, Mat charucoCorners, Mat charucoIds) { 1146 Mat markerCorners_mat = Converters.vector_Mat_to_Mat(markerCorners); 1147 return interpolateCornersCharuco_3(markerCorners_mat.nativeObj, markerIds.nativeObj, image.nativeObj, board.getNativeObjAddr(), charucoCorners.nativeObj, charucoIds.nativeObj); 1148 } 1149 1150 1151 // 1152 // C++: void cv::aruco::detectCharucoDiamond(Mat image, vector_Mat markerCorners, Mat markerIds, float squareMarkerLengthRate, vector_Mat& diamondCorners, Mat& diamondIds, Mat cameraMatrix = Mat(), Mat distCoeffs = Mat(), Ptr_Dictionary dictionary = makePtr<Dictionary> (getPredefinedDictionary(PredefinedDictionaryType::DICT_4X4_50))) 1153 // 1154 1155 /** 1156 * Detect ChArUco Diamond markers 1157 * 1158 * @param image input image necessary for corner subpixel. 1159 * @param markerCorners list of detected marker corners from detectMarkers function. 1160 * @param markerIds list of marker ids in markerCorners. 1161 * @param squareMarkerLengthRate rate between square and marker length: 1162 * squareMarkerLengthRate = squareLength/markerLength. The real units are not necessary. 1163 * @param diamondCorners output list of detected diamond corners (4 corners per diamond). The order 1164 * is the same than in marker corners: top left, top right, bottom right and bottom left. Similar 1165 * format than the corners returned by detectMarkers (e.g std::vector<std::vector<cv::Point2f> > ). 1166 * @param diamondIds ids of the diamonds in diamondCorners. The id of each diamond is in fact of 1167 * type Vec4i, so each diamond has 4 ids, which are the ids of the aruco markers composing the 1168 * diamond. 1169 * @param cameraMatrix Optional camera calibration matrix. 1170 * @param distCoeffs Optional camera distortion coefficients. 1171 * @param dictionary dictionary of markers indicating the type of markers. 1172 * 1173 * This function detects Diamond markers from the previous detected ArUco markers. The diamonds 1174 * are returned in the diamondCorners and diamondIds parameters. If camera calibration parameters 1175 * are provided, the diamond search is based on reprojection. If not, diamond search is based on 1176 * homography. Homography is faster than reprojection, but less accurate. 1177 * 1178 * @deprecated Use CharucoDetector::detectDiamonds 1179 */ 1180 @Deprecated 1181 public static void detectCharucoDiamond(Mat image, List<Mat> markerCorners, Mat markerIds, float squareMarkerLengthRate, List<Mat> diamondCorners, Mat diamondIds, Mat cameraMatrix, Mat distCoeffs, Dictionary dictionary) { 1182 Mat markerCorners_mat = Converters.vector_Mat_to_Mat(markerCorners); 1183 Mat diamondCorners_mat = new Mat(); 1184 detectCharucoDiamond_0(image.nativeObj, markerCorners_mat.nativeObj, markerIds.nativeObj, squareMarkerLengthRate, diamondCorners_mat.nativeObj, diamondIds.nativeObj, cameraMatrix.nativeObj, distCoeffs.nativeObj, dictionary.getNativeObjAddr()); 1185 Converters.Mat_to_vector_Mat(diamondCorners_mat, diamondCorners); 1186 diamondCorners_mat.release(); 1187 } 1188 1189 /** 1190 * Detect ChArUco Diamond markers 1191 * 1192 * @param image input image necessary for corner subpixel. 1193 * @param markerCorners list of detected marker corners from detectMarkers function. 1194 * @param markerIds list of marker ids in markerCorners. 1195 * @param squareMarkerLengthRate rate between square and marker length: 1196 * squareMarkerLengthRate = squareLength/markerLength. The real units are not necessary. 1197 * @param diamondCorners output list of detected diamond corners (4 corners per diamond). The order 1198 * is the same than in marker corners: top left, top right, bottom right and bottom left. Similar 1199 * format than the corners returned by detectMarkers (e.g std::vector<std::vector<cv::Point2f> > ). 1200 * @param diamondIds ids of the diamonds in diamondCorners. The id of each diamond is in fact of 1201 * type Vec4i, so each diamond has 4 ids, which are the ids of the aruco markers composing the 1202 * diamond. 1203 * @param cameraMatrix Optional camera calibration matrix. 1204 * @param distCoeffs Optional camera distortion coefficients. 1205 * 1206 * This function detects Diamond markers from the previous detected ArUco markers. The diamonds 1207 * are returned in the diamondCorners and diamondIds parameters. If camera calibration parameters 1208 * are provided, the diamond search is based on reprojection. If not, diamond search is based on 1209 * homography. Homography is faster than reprojection, but less accurate. 1210 * 1211 * @deprecated Use CharucoDetector::detectDiamonds 1212 */ 1213 @Deprecated 1214 public static void detectCharucoDiamond(Mat image, List<Mat> markerCorners, Mat markerIds, float squareMarkerLengthRate, List<Mat> diamondCorners, Mat diamondIds, Mat cameraMatrix, Mat distCoeffs) { 1215 Mat markerCorners_mat = Converters.vector_Mat_to_Mat(markerCorners); 1216 Mat diamondCorners_mat = new Mat(); 1217 detectCharucoDiamond_1(image.nativeObj, markerCorners_mat.nativeObj, markerIds.nativeObj, squareMarkerLengthRate, diamondCorners_mat.nativeObj, diamondIds.nativeObj, cameraMatrix.nativeObj, distCoeffs.nativeObj); 1218 Converters.Mat_to_vector_Mat(diamondCorners_mat, diamondCorners); 1219 diamondCorners_mat.release(); 1220 } 1221 1222 /** 1223 * Detect ChArUco Diamond markers 1224 * 1225 * @param image input image necessary for corner subpixel. 1226 * @param markerCorners list of detected marker corners from detectMarkers function. 1227 * @param markerIds list of marker ids in markerCorners. 1228 * @param squareMarkerLengthRate rate between square and marker length: 1229 * squareMarkerLengthRate = squareLength/markerLength. The real units are not necessary. 1230 * @param diamondCorners output list of detected diamond corners (4 corners per diamond). The order 1231 * is the same than in marker corners: top left, top right, bottom right and bottom left. Similar 1232 * format than the corners returned by detectMarkers (e.g std::vector<std::vector<cv::Point2f> > ). 1233 * @param diamondIds ids of the diamonds in diamondCorners. The id of each diamond is in fact of 1234 * type Vec4i, so each diamond has 4 ids, which are the ids of the aruco markers composing the 1235 * diamond. 1236 * @param cameraMatrix Optional camera calibration matrix. 1237 * 1238 * This function detects Diamond markers from the previous detected ArUco markers. The diamonds 1239 * are returned in the diamondCorners and diamondIds parameters. If camera calibration parameters 1240 * are provided, the diamond search is based on reprojection. If not, diamond search is based on 1241 * homography. Homography is faster than reprojection, but less accurate. 1242 * 1243 * @deprecated Use CharucoDetector::detectDiamonds 1244 */ 1245 @Deprecated 1246 public static void detectCharucoDiamond(Mat image, List<Mat> markerCorners, Mat markerIds, float squareMarkerLengthRate, List<Mat> diamondCorners, Mat diamondIds, Mat cameraMatrix) { 1247 Mat markerCorners_mat = Converters.vector_Mat_to_Mat(markerCorners); 1248 Mat diamondCorners_mat = new Mat(); 1249 detectCharucoDiamond_2(image.nativeObj, markerCorners_mat.nativeObj, markerIds.nativeObj, squareMarkerLengthRate, diamondCorners_mat.nativeObj, diamondIds.nativeObj, cameraMatrix.nativeObj); 1250 Converters.Mat_to_vector_Mat(diamondCorners_mat, diamondCorners); 1251 diamondCorners_mat.release(); 1252 } 1253 1254 /** 1255 * Detect ChArUco Diamond markers 1256 * 1257 * @param image input image necessary for corner subpixel. 1258 * @param markerCorners list of detected marker corners from detectMarkers function. 1259 * @param markerIds list of marker ids in markerCorners. 1260 * @param squareMarkerLengthRate rate between square and marker length: 1261 * squareMarkerLengthRate = squareLength/markerLength. The real units are not necessary. 1262 * @param diamondCorners output list of detected diamond corners (4 corners per diamond). The order 1263 * is the same than in marker corners: top left, top right, bottom right and bottom left. Similar 1264 * format than the corners returned by detectMarkers (e.g std::vector<std::vector<cv::Point2f> > ). 1265 * @param diamondIds ids of the diamonds in diamondCorners. The id of each diamond is in fact of 1266 * type Vec4i, so each diamond has 4 ids, which are the ids of the aruco markers composing the 1267 * diamond. 1268 * 1269 * This function detects Diamond markers from the previous detected ArUco markers. The diamonds 1270 * are returned in the diamondCorners and diamondIds parameters. If camera calibration parameters 1271 * are provided, the diamond search is based on reprojection. If not, diamond search is based on 1272 * homography. Homography is faster than reprojection, but less accurate. 1273 * 1274 * @deprecated Use CharucoDetector::detectDiamonds 1275 */ 1276 @Deprecated 1277 public static void detectCharucoDiamond(Mat image, List<Mat> markerCorners, Mat markerIds, float squareMarkerLengthRate, List<Mat> diamondCorners, Mat diamondIds) { 1278 Mat markerCorners_mat = Converters.vector_Mat_to_Mat(markerCorners); 1279 Mat diamondCorners_mat = new Mat(); 1280 detectCharucoDiamond_3(image.nativeObj, markerCorners_mat.nativeObj, markerIds.nativeObj, squareMarkerLengthRate, diamondCorners_mat.nativeObj, diamondIds.nativeObj); 1281 Converters.Mat_to_vector_Mat(diamondCorners_mat, diamondCorners); 1282 diamondCorners_mat.release(); 1283 } 1284 1285 1286 // 1287 // C++: void cv::aruco::drawCharucoDiamond(Ptr_Dictionary dictionary, Vec4i ids, int squareLength, int markerLength, Mat& img, int marginSize = 0, int borderBits = 1) 1288 // 1289 1290 // Unknown type 'Vec4i' (I), skipping the function 1291 1292 1293 1294 1295 // C++: void cv::aruco::detectMarkers(Mat image, Ptr_Dictionary dictionary, vector_Mat& corners, Mat& ids, Ptr_DetectorParameters parameters = makePtr<DetectorParameters>(), vector_Mat& rejectedImgPoints = vector_Mat()) 1296 private static native void detectMarkers_0(long image_nativeObj, long dictionary_nativeObj, long corners_mat_nativeObj, long ids_nativeObj, long parameters_nativeObj, long rejectedImgPoints_mat_nativeObj); 1297 private static native void detectMarkers_1(long image_nativeObj, long dictionary_nativeObj, long corners_mat_nativeObj, long ids_nativeObj, long parameters_nativeObj); 1298 private static native void detectMarkers_2(long image_nativeObj, long dictionary_nativeObj, long corners_mat_nativeObj, long ids_nativeObj); 1299 1300 // C++: void cv::aruco::refineDetectedMarkers(Mat image, Ptr_Board board, vector_Mat& detectedCorners, Mat& detectedIds, vector_Mat& rejectedCorners, Mat cameraMatrix = Mat(), Mat distCoeffs = Mat(), float minRepDistance = 10.f, float errorCorrectionRate = 3.f, bool checkAllOrders = true, Mat& recoveredIdxs = Mat(), Ptr_DetectorParameters parameters = makePtr<DetectorParameters>()) 1301 private static native void refineDetectedMarkers_0(long image_nativeObj, long board_nativeObj, long detectedCorners_mat_nativeObj, long detectedIds_nativeObj, long rejectedCorners_mat_nativeObj, long cameraMatrix_nativeObj, long distCoeffs_nativeObj, float minRepDistance, float errorCorrectionRate, boolean checkAllOrders, long recoveredIdxs_nativeObj, long parameters_nativeObj); 1302 private static native void refineDetectedMarkers_1(long image_nativeObj, long board_nativeObj, long detectedCorners_mat_nativeObj, long detectedIds_nativeObj, long rejectedCorners_mat_nativeObj, long cameraMatrix_nativeObj, long distCoeffs_nativeObj, float minRepDistance, float errorCorrectionRate, boolean checkAllOrders, long recoveredIdxs_nativeObj); 1303 private static native void refineDetectedMarkers_2(long image_nativeObj, long board_nativeObj, long detectedCorners_mat_nativeObj, long detectedIds_nativeObj, long rejectedCorners_mat_nativeObj, long cameraMatrix_nativeObj, long distCoeffs_nativeObj, float minRepDistance, float errorCorrectionRate, boolean checkAllOrders); 1304 private static native void refineDetectedMarkers_3(long image_nativeObj, long board_nativeObj, long detectedCorners_mat_nativeObj, long detectedIds_nativeObj, long rejectedCorners_mat_nativeObj, long cameraMatrix_nativeObj, long distCoeffs_nativeObj, float minRepDistance, float errorCorrectionRate); 1305 private static native void refineDetectedMarkers_4(long image_nativeObj, long board_nativeObj, long detectedCorners_mat_nativeObj, long detectedIds_nativeObj, long rejectedCorners_mat_nativeObj, long cameraMatrix_nativeObj, long distCoeffs_nativeObj, float minRepDistance); 1306 private static native void refineDetectedMarkers_5(long image_nativeObj, long board_nativeObj, long detectedCorners_mat_nativeObj, long detectedIds_nativeObj, long rejectedCorners_mat_nativeObj, long cameraMatrix_nativeObj, long distCoeffs_nativeObj); 1307 private static native void refineDetectedMarkers_6(long image_nativeObj, long board_nativeObj, long detectedCorners_mat_nativeObj, long detectedIds_nativeObj, long rejectedCorners_mat_nativeObj, long cameraMatrix_nativeObj); 1308 private static native void refineDetectedMarkers_7(long image_nativeObj, long board_nativeObj, long detectedCorners_mat_nativeObj, long detectedIds_nativeObj, long rejectedCorners_mat_nativeObj); 1309 1310 // C++: void cv::aruco::drawPlanarBoard(Ptr_Board board, Size outSize, Mat& img, int marginSize, int borderBits) 1311 private static native void drawPlanarBoard_0(long board_nativeObj, double outSize_width, double outSize_height, long img_nativeObj, int marginSize, int borderBits); 1312 1313 // C++: void cv::aruco::getBoardObjectAndImagePoints(Ptr_Board board, vector_Mat detectedCorners, Mat detectedIds, Mat& objPoints, Mat& imgPoints) 1314 private static native void getBoardObjectAndImagePoints_0(long board_nativeObj, long detectedCorners_mat_nativeObj, long detectedIds_nativeObj, long objPoints_nativeObj, long imgPoints_nativeObj); 1315 1316 // C++: int cv::aruco::estimatePoseBoard(vector_Mat corners, Mat ids, Ptr_Board board, Mat cameraMatrix, Mat distCoeffs, Mat& rvec, Mat& tvec, bool useExtrinsicGuess = false) 1317 private static native int estimatePoseBoard_0(long corners_mat_nativeObj, long ids_nativeObj, long board_nativeObj, long cameraMatrix_nativeObj, long distCoeffs_nativeObj, long rvec_nativeObj, long tvec_nativeObj, boolean useExtrinsicGuess); 1318 private static native int estimatePoseBoard_1(long corners_mat_nativeObj, long ids_nativeObj, long board_nativeObj, long cameraMatrix_nativeObj, long distCoeffs_nativeObj, long rvec_nativeObj, long tvec_nativeObj); 1319 1320 // C++: bool cv::aruco::estimatePoseCharucoBoard(Mat charucoCorners, Mat charucoIds, Ptr_CharucoBoard board, Mat cameraMatrix, Mat distCoeffs, Mat& rvec, Mat& tvec, bool useExtrinsicGuess = false) 1321 private static native boolean estimatePoseCharucoBoard_0(long charucoCorners_nativeObj, long charucoIds_nativeObj, long board_nativeObj, long cameraMatrix_nativeObj, long distCoeffs_nativeObj, long rvec_nativeObj, long tvec_nativeObj, boolean useExtrinsicGuess); 1322 private static native boolean estimatePoseCharucoBoard_1(long charucoCorners_nativeObj, long charucoIds_nativeObj, long board_nativeObj, long cameraMatrix_nativeObj, long distCoeffs_nativeObj, long rvec_nativeObj, long tvec_nativeObj); 1323 1324 // C++: void cv::aruco::estimatePoseSingleMarkers(vector_Mat corners, float markerLength, Mat cameraMatrix, Mat distCoeffs, Mat& rvecs, Mat& tvecs, Mat& objPoints = Mat(), Ptr_EstimateParameters estimateParameters = makePtr<EstimateParameters>()) 1325 private static native void estimatePoseSingleMarkers_0(long corners_mat_nativeObj, float markerLength, long cameraMatrix_nativeObj, long distCoeffs_nativeObj, long rvecs_nativeObj, long tvecs_nativeObj, long objPoints_nativeObj, long estimateParameters_nativeObj); 1326 private static native void estimatePoseSingleMarkers_1(long corners_mat_nativeObj, float markerLength, long cameraMatrix_nativeObj, long distCoeffs_nativeObj, long rvecs_nativeObj, long tvecs_nativeObj, long objPoints_nativeObj); 1327 private static native void estimatePoseSingleMarkers_2(long corners_mat_nativeObj, float markerLength, long cameraMatrix_nativeObj, long distCoeffs_nativeObj, long rvecs_nativeObj, long tvecs_nativeObj); 1328 1329 // C++: bool cv::aruco::testCharucoCornersCollinear(Ptr_CharucoBoard board, Mat charucoIds) 1330 private static native boolean testCharucoCornersCollinear_0(long board_nativeObj, long charucoIds_nativeObj); 1331 1332 // C++: double cv::aruco::calibrateCameraAruco(vector_Mat corners, Mat ids, Mat counter, Ptr_Board board, Size imageSize, Mat& cameraMatrix, Mat& distCoeffs, vector_Mat& rvecs, vector_Mat& tvecs, Mat& stdDeviationsIntrinsics, Mat& stdDeviationsExtrinsics, Mat& perViewErrors, int flags = 0, TermCriteria criteria = TermCriteria(TermCriteria::COUNT + TermCriteria::EPS, 30, DBL_EPSILON)) 1333 private static native double calibrateCameraArucoExtended_0(long corners_mat_nativeObj, long ids_nativeObj, long counter_nativeObj, long board_nativeObj, double imageSize_width, double imageSize_height, long cameraMatrix_nativeObj, long distCoeffs_nativeObj, long rvecs_mat_nativeObj, long tvecs_mat_nativeObj, long stdDeviationsIntrinsics_nativeObj, long stdDeviationsExtrinsics_nativeObj, long perViewErrors_nativeObj, int flags, int criteria_type, int criteria_maxCount, double criteria_epsilon); 1334 private static native double calibrateCameraArucoExtended_1(long corners_mat_nativeObj, long ids_nativeObj, long counter_nativeObj, long board_nativeObj, double imageSize_width, double imageSize_height, long cameraMatrix_nativeObj, long distCoeffs_nativeObj, long rvecs_mat_nativeObj, long tvecs_mat_nativeObj, long stdDeviationsIntrinsics_nativeObj, long stdDeviationsExtrinsics_nativeObj, long perViewErrors_nativeObj, int flags); 1335 private static native double calibrateCameraArucoExtended_2(long corners_mat_nativeObj, long ids_nativeObj, long counter_nativeObj, long board_nativeObj, double imageSize_width, double imageSize_height, long cameraMatrix_nativeObj, long distCoeffs_nativeObj, long rvecs_mat_nativeObj, long tvecs_mat_nativeObj, long stdDeviationsIntrinsics_nativeObj, long stdDeviationsExtrinsics_nativeObj, long perViewErrors_nativeObj); 1336 1337 // C++: double cv::aruco::calibrateCameraAruco(vector_Mat corners, Mat ids, Mat counter, Ptr_Board board, Size imageSize, Mat& cameraMatrix, Mat& distCoeffs, vector_Mat& rvecs = vector_Mat(), vector_Mat& tvecs = vector_Mat(), int flags = 0, TermCriteria criteria = TermCriteria(TermCriteria::COUNT + TermCriteria::EPS, 30, DBL_EPSILON)) 1338 private static native double calibrateCameraAruco_0(long corners_mat_nativeObj, long ids_nativeObj, long counter_nativeObj, long board_nativeObj, double imageSize_width, double imageSize_height, long cameraMatrix_nativeObj, long distCoeffs_nativeObj, long rvecs_mat_nativeObj, long tvecs_mat_nativeObj, int flags, int criteria_type, int criteria_maxCount, double criteria_epsilon); 1339 private static native double calibrateCameraAruco_1(long corners_mat_nativeObj, long ids_nativeObj, long counter_nativeObj, long board_nativeObj, double imageSize_width, double imageSize_height, long cameraMatrix_nativeObj, long distCoeffs_nativeObj, long rvecs_mat_nativeObj, long tvecs_mat_nativeObj, int flags); 1340 private static native double calibrateCameraAruco_2(long corners_mat_nativeObj, long ids_nativeObj, long counter_nativeObj, long board_nativeObj, double imageSize_width, double imageSize_height, long cameraMatrix_nativeObj, long distCoeffs_nativeObj, long rvecs_mat_nativeObj, long tvecs_mat_nativeObj); 1341 private static native double calibrateCameraAruco_3(long corners_mat_nativeObj, long ids_nativeObj, long counter_nativeObj, long board_nativeObj, double imageSize_width, double imageSize_height, long cameraMatrix_nativeObj, long distCoeffs_nativeObj, long rvecs_mat_nativeObj); 1342 private static native double calibrateCameraAruco_4(long corners_mat_nativeObj, long ids_nativeObj, long counter_nativeObj, long board_nativeObj, double imageSize_width, double imageSize_height, long cameraMatrix_nativeObj, long distCoeffs_nativeObj); 1343 1344 // C++: double cv::aruco::calibrateCameraCharuco(vector_Mat charucoCorners, vector_Mat charucoIds, Ptr_CharucoBoard board, Size imageSize, Mat& cameraMatrix, Mat& distCoeffs, vector_Mat& rvecs, vector_Mat& tvecs, Mat& stdDeviationsIntrinsics, Mat& stdDeviationsExtrinsics, Mat& perViewErrors, int flags = 0, TermCriteria criteria = TermCriteria( TermCriteria::COUNT + TermCriteria::EPS, 30, DBL_EPSILON)) 1345 private static native double calibrateCameraCharucoExtended_0(long charucoCorners_mat_nativeObj, long charucoIds_mat_nativeObj, long board_nativeObj, double imageSize_width, double imageSize_height, long cameraMatrix_nativeObj, long distCoeffs_nativeObj, long rvecs_mat_nativeObj, long tvecs_mat_nativeObj, long stdDeviationsIntrinsics_nativeObj, long stdDeviationsExtrinsics_nativeObj, long perViewErrors_nativeObj, int flags, int criteria_type, int criteria_maxCount, double criteria_epsilon); 1346 private static native double calibrateCameraCharucoExtended_1(long charucoCorners_mat_nativeObj, long charucoIds_mat_nativeObj, long board_nativeObj, double imageSize_width, double imageSize_height, long cameraMatrix_nativeObj, long distCoeffs_nativeObj, long rvecs_mat_nativeObj, long tvecs_mat_nativeObj, long stdDeviationsIntrinsics_nativeObj, long stdDeviationsExtrinsics_nativeObj, long perViewErrors_nativeObj, int flags); 1347 private static native double calibrateCameraCharucoExtended_2(long charucoCorners_mat_nativeObj, long charucoIds_mat_nativeObj, long board_nativeObj, double imageSize_width, double imageSize_height, long cameraMatrix_nativeObj, long distCoeffs_nativeObj, long rvecs_mat_nativeObj, long tvecs_mat_nativeObj, long stdDeviationsIntrinsics_nativeObj, long stdDeviationsExtrinsics_nativeObj, long perViewErrors_nativeObj); 1348 1349 // C++: double cv::aruco::calibrateCameraCharuco(vector_Mat charucoCorners, vector_Mat charucoIds, Ptr_CharucoBoard board, Size imageSize, Mat& cameraMatrix, Mat& distCoeffs, vector_Mat& rvecs = vector_Mat(), vector_Mat& tvecs = vector_Mat(), int flags = 0, TermCriteria criteria = TermCriteria(TermCriteria::COUNT + TermCriteria::EPS, 30, DBL_EPSILON)) 1350 private static native double calibrateCameraCharuco_0(long charucoCorners_mat_nativeObj, long charucoIds_mat_nativeObj, long board_nativeObj, double imageSize_width, double imageSize_height, long cameraMatrix_nativeObj, long distCoeffs_nativeObj, long rvecs_mat_nativeObj, long tvecs_mat_nativeObj, int flags, int criteria_type, int criteria_maxCount, double criteria_epsilon); 1351 private static native double calibrateCameraCharuco_1(long charucoCorners_mat_nativeObj, long charucoIds_mat_nativeObj, long board_nativeObj, double imageSize_width, double imageSize_height, long cameraMatrix_nativeObj, long distCoeffs_nativeObj, long rvecs_mat_nativeObj, long tvecs_mat_nativeObj, int flags); 1352 private static native double calibrateCameraCharuco_2(long charucoCorners_mat_nativeObj, long charucoIds_mat_nativeObj, long board_nativeObj, double imageSize_width, double imageSize_height, long cameraMatrix_nativeObj, long distCoeffs_nativeObj, long rvecs_mat_nativeObj, long tvecs_mat_nativeObj); 1353 private static native double calibrateCameraCharuco_3(long charucoCorners_mat_nativeObj, long charucoIds_mat_nativeObj, long board_nativeObj, double imageSize_width, double imageSize_height, long cameraMatrix_nativeObj, long distCoeffs_nativeObj, long rvecs_mat_nativeObj); 1354 private static native double calibrateCameraCharuco_4(long charucoCorners_mat_nativeObj, long charucoIds_mat_nativeObj, long board_nativeObj, double imageSize_width, double imageSize_height, long cameraMatrix_nativeObj, long distCoeffs_nativeObj); 1355 1356 // C++: int cv::aruco::interpolateCornersCharuco(vector_Mat markerCorners, Mat markerIds, Mat image, Ptr_CharucoBoard board, Mat& charucoCorners, Mat& charucoIds, Mat cameraMatrix = Mat(), Mat distCoeffs = Mat(), int minMarkers = 2) 1357 private static native int interpolateCornersCharuco_0(long markerCorners_mat_nativeObj, long markerIds_nativeObj, long image_nativeObj, long board_nativeObj, long charucoCorners_nativeObj, long charucoIds_nativeObj, long cameraMatrix_nativeObj, long distCoeffs_nativeObj, int minMarkers); 1358 private static native int interpolateCornersCharuco_1(long markerCorners_mat_nativeObj, long markerIds_nativeObj, long image_nativeObj, long board_nativeObj, long charucoCorners_nativeObj, long charucoIds_nativeObj, long cameraMatrix_nativeObj, long distCoeffs_nativeObj); 1359 private static native int interpolateCornersCharuco_2(long markerCorners_mat_nativeObj, long markerIds_nativeObj, long image_nativeObj, long board_nativeObj, long charucoCorners_nativeObj, long charucoIds_nativeObj, long cameraMatrix_nativeObj); 1360 private static native int interpolateCornersCharuco_3(long markerCorners_mat_nativeObj, long markerIds_nativeObj, long image_nativeObj, long board_nativeObj, long charucoCorners_nativeObj, long charucoIds_nativeObj); 1361 1362 // C++: void cv::aruco::detectCharucoDiamond(Mat image, vector_Mat markerCorners, Mat markerIds, float squareMarkerLengthRate, vector_Mat& diamondCorners, Mat& diamondIds, Mat cameraMatrix = Mat(), Mat distCoeffs = Mat(), Ptr_Dictionary dictionary = makePtr<Dictionary> (getPredefinedDictionary(PredefinedDictionaryType::DICT_4X4_50))) 1363 private static native void detectCharucoDiamond_0(long image_nativeObj, long markerCorners_mat_nativeObj, long markerIds_nativeObj, float squareMarkerLengthRate, long diamondCorners_mat_nativeObj, long diamondIds_nativeObj, long cameraMatrix_nativeObj, long distCoeffs_nativeObj, long dictionary_nativeObj); 1364 private static native void detectCharucoDiamond_1(long image_nativeObj, long markerCorners_mat_nativeObj, long markerIds_nativeObj, float squareMarkerLengthRate, long diamondCorners_mat_nativeObj, long diamondIds_nativeObj, long cameraMatrix_nativeObj, long distCoeffs_nativeObj); 1365 private static native void detectCharucoDiamond_2(long image_nativeObj, long markerCorners_mat_nativeObj, long markerIds_nativeObj, float squareMarkerLengthRate, long diamondCorners_mat_nativeObj, long diamondIds_nativeObj, long cameraMatrix_nativeObj); 1366 private static native void detectCharucoDiamond_3(long image_nativeObj, long markerCorners_mat_nativeObj, long markerIds_nativeObj, float squareMarkerLengthRate, long diamondCorners_mat_nativeObj, long diamondIds_nativeObj); 1367 1368}