OpenCV 4.13.0
開源計算機視覺庫 (Open Source Computer Vision)
正在載入...
正在搜尋...
未找到匹配項
Aruco 標記,模組功能已移至 objdetect 模組

詳細說明

ArUco 標記檢測,模組功能已移至 objdetect 模組

另請參閱
ArucoDetector, CharucoDetector, Board, GridBoard, CharucoBoard

結構體  cv::aruco::EstimateParameters
 姿態估計引數。更多...
 

列舉

enum  cv::aruco::PatternPositionType {
  cv::aruco::ARUCO_CCW_CENTER ,
  cv::aruco::ARUCO_CW_TOP_LEFT_CORNER
}
 rvec/tvec 定義了標記的右手座標系。更多...
 

函式

double cv::aruco::calibrateCameraAruco (InputArrayOfArrays corners, InputArray ids, InputArray counter, const Ptr< Board > &board, Size imageSize, InputOutputArray cameraMatrix, InputOutputArray distCoeffs, OutputArrayOfArrays rvecs, OutputArrayOfArrays tvecs, OutputArray stdDeviationsIntrinsics, OutputArray stdDeviationsExtrinsics, OutputArray perViewErrors, int flags=0, const TermCriteria &criteria=TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, DBL_EPSILON))
 使用 aruco 標記校準相機。
 
double cv::aruco::calibrateCameraAruco (InputArrayOfArrays corners, InputArray ids, InputArray counter, const Ptr< Board > &board, Size imageSize, InputOutputArray cameraMatrix, InputOutputArray distCoeffs, OutputArrayOfArrays rvecs=noArray(), OutputArrayOfArrays tvecs=noArray(), int flags=0, const TermCriteria &criteria=TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, DBL_EPSILON))
 該函式與 calibrateCameraAruco 相同,但不包含校準誤差估計。
 
double cv::aruco::calibrateCameraCharuco (InputArrayOfArrays charucoCorners, InputArrayOfArrays charucoIds, const Ptr< CharucoBoard > &board, Size imageSize, InputOutputArray cameraMatrix, InputOutputArray distCoeffs, OutputArrayOfArrays rvecs, OutputArrayOfArrays tvecs, OutputArray stdDeviationsIntrinsics, OutputArray stdDeviationsExtrinsics, OutputArray perViewErrors, int flags=0, const TermCriteria &criteria=TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, DBL_EPSILON))
 使用 Charuco 角點校準相機。
 
double cv::aruco::calibrateCameraCharuco (InputArrayOfArrays charucoCorners, InputArrayOfArrays charucoIds, const Ptr< CharucoBoard > &board, Size imageSize, InputOutputArray cameraMatrix, InputOutputArray distCoeffs, OutputArrayOfArrays rvecs=noArray(), OutputArrayOfArrays tvecs=noArray(), int flags=0, const TermCriteria &criteria=TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, DBL_EPSILON))
 該函式與 calibrateCameraCharuco 相同,但不包含校準誤差估計。
 
void cv::aruco::detectCharucoDiamond (InputArray image, InputArrayOfArrays markerCorners, InputArray markerIds, float squareMarkerLengthRate, OutputArrayOfArrays diamondCorners, OutputArray diamondIds, InputArray cameraMatrix=noArray(), InputArray distCoeffs=noArray(), Ptr< Dictionary > dictionary=makePtr< Dictionary >(getPredefinedDictionary(PredefinedDictionaryType::DICT_4X4_50)))
 檢測 ChArUco 鑽石標記。
 
void cv::aruco::detectMarkers (InputArray image, const Ptr< Dictionary > &dictionary, OutputArrayOfArrays corners, OutputArray ids, const Ptr< DetectorParameters > &parameters=makePtr< DetectorParameters >(), OutputArrayOfArrays rejectedImgPoints=noArray())
 檢測標記
 
void cv::aruco::drawCharucoDiamond (const Ptr< Dictionary > &dictionary, Vec4i ids, int squareLength, int markerLength, OutputArray img, int marginSize=0, int borderBits=1)
 繪製一個 ChArUco 鑽石標記。
 
void cv::aruco::drawPlanarBoard (const Ptr< Board > &board, Size outSize, OutputArray img, int marginSize, int borderBits)
 繪製平面板
 
int cv::aruco::estimatePoseBoard (InputArrayOfArrays corners, InputArray ids, const Ptr< Board > &board, InputArray cameraMatrix, InputArray distCoeffs, InputOutputArray rvec, InputOutputArray tvec, bool useExtrinsicGuess=false)
 
bool cv::aruco::estimatePoseCharucoBoard (InputArray charucoCorners, InputArray charucoIds, const Ptr< CharucoBoard > &board, InputArray cameraMatrix, InputArray distCoeffs, InputOutputArray rvec, InputOutputArray tvec, bool useExtrinsicGuess=false)
 根據部分角點估計 ChArUco 板的姿態。
 
void cv::aruco::estimatePoseSingleMarkers (InputArrayOfArrays corners, float markerLength, InputArray cameraMatrix, InputArray distCoeffs, OutputArray rvecs, OutputArray tvecs, OutputArray objPoints=noArray(), const Ptr< EstimateParameters > &estimateParameters=makePtr< EstimateParameters >())
 
void cv::aruco::getBoardObjectAndImagePoints (const Ptr< Board > &board, InputArrayOfArrays detectedCorners, InputArray detectedIds, OutputArray objPoints, OutputArray imgPoints)
 獲取板的物體點和影像點
 
int cv::aruco::interpolateCornersCharuco (InputArrayOfArrays markerCorners, InputArray markerIds, InputArray image, const Ptr< CharucoBoard > &board, OutputArray charucoCorners, OutputArray charucoIds, InputArray cameraMatrix=noArray(), InputArray distCoeffs=noArray(), int minMarkers=2)
 插值計算 ChArUco 板角點的位置。
 
void cv::aruco::refineDetectedMarkers (InputArray image, const Ptr< Board > &board, InputOutputArrayOfArrays detectedCorners, InputOutputArray detectedIds, InputOutputArrayOfArrays rejectedCorners, InputArray cameraMatrix=noArray(), InputArray distCoeffs=noArray(), float minRepDistance=10.f, float errorCorrectionRate=3.f, bool checkAllOrders=true, OutputArray recoveredIdxs=noArray(), const Ptr< DetectorParameters > &parameters=makePtr< DetectorParameters >())
 細化檢測到的標記
 
bool cv::aruco::testCharucoCornersCollinear (const Ptr< CharucoBoard > &board, InputArray charucoIds)
 

列舉型別文件 (Enumeration Type Documentation)

◆ PatternPositionType

#include <opencv2/aruco/aruco_calib.hpp>

rvec/tvec 定義了標記的右手座標系。

PatternPositionType 定義了此座標系的中心和軸向。X 軸(紅色)- 第一座標,Y 軸(綠色)- 第二座標,Z 軸(藍色)- 第三座標。

已棄用
使用 Board::matchImagePointscv::solvePnP
另請參閱
estimatePoseSingleMarkers()
列舉值 (Enumerator)
ARUCO_CCW_CENTER 
Python: cv.aruco.ARUCO_CCW_CENTER

標記座標系以標記的中心為原點。

標記四個角點(逆時針順序)在其自身座標系中的座標為:(-markerLength/2, markerLength/2, 0), (markerLength/2, markerLength/2, 0), (markerLength/2, -markerLength/2, 0), (-markerLength/2, -markerLength/2, 0)。

ARUCO_CW_TOP_LEFT_CORNER 
Python: cv.aruco.ARUCO_CW_TOP_LEFT_CORNER

標記座標系以標記的左上角為原點。

標記四個角點(順時針順序)在其自身座標系中的座標為:(0, 0, 0), (markerLength, 0, 0), (markerLength, markerLength, 0), (0, markerLength, 0)。

這些模式點便於與棋盤格/ChArUco 板配合使用。

函式文件 (Function Documentation)

◆ calibrateCameraAruco() [1/2]

double cv::aruco::calibrateCameraAruco ( InputArrayOfArrays corners,
InputArray ids,
InputArray counter,
const Ptr< Board > & board,
Size imageSize,
InputOutputArray cameraMatrix,
InputOutputArray distCoeffs,
OutputArrayOfArrays rvecs,
OutputArrayOfArrays tvecs,
OutputArray stdDeviationsIntrinsics,
OutputArray stdDeviationsExtrinsics,
OutputArray perViewErrors,
int flags = 0,
const TermCriteria & criteria = TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, DBL_EPSILON) )
Python
cv.aruco.calibrateCameraAruco(corners, ids, counter, board, imageSize, cameraMatrix, distCoeffs[, rvecs[, tvecs[, flags[, criteria]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs
cv.aruco.calibrateCameraArucoExtended(corners, ids, counter, board, imageSize, cameraMatrix, distCoeffs[, rvecs[, tvecs[, stdDeviationsIntrinsics[, stdDeviationsExtrinsics[, perViewErrors[, flags[, criteria]]]]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs, stdDeviationsIntrinsics, stdDeviationsExtrinsics, perViewErrors

#include <opencv2/aruco/aruco_calib.hpp>

使用 aruco 標記校準相機。

引數
corners所有幀中檢測到的標記角點向量。角點應具有 detectMarkers 返回的相同格式(見 detectMarkers)。
idscorners 中每個標記的識別符號列表
counter每幀中標記的數量,以便可以拆分 corners 和 ids
board標記板 Board 佈局
imageSize影像尺寸,僅用於初始化相機內參矩陣。
cameraMatrix輸出 3x3 浮點相機矩陣 \(A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\)。如果指定了 CV_CALIB_USE_INTRINSIC_GUESS 和/或 CV_CALIB_FIX_ASPECT_RATIO,則在呼叫函式前必須初始化 fx, fy, cx, cy 中的部分或全部。
distCoeffs輸出畸變係數向量 \((k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\),包含 4, 5, 8 或 12 個元素
rvecs為每個板檢視估計的旋轉向量輸出向量(例如 std::vector<cv::Mat>)。即,每個第 k 個旋轉向量與相應的第 k 個平移向量(見下一個輸出引數說明)一起,將板模式從模型座標空間(在其中指定物件點)變換到世界座標空間,即第 k 個模式檢視中板模式的真實位置(k=0.. M -1)。
tvecs為每個模式檢視估計的平移向量輸出向量。
stdDeviationsIntrinsics估計的內參引數標準差輸出向量。偏差值順序為:\((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, s_4, \tau_x, \tau_y)\)。如果某個引數未估計,其偏差等於零。
stdDeviationsExtrinsics估計的外參引數標準差輸出向量。偏差值順序為:\((R_1, T_1, \dotsc , R_M, T_M)\),其中 M 是模式檢視的數量,\(R_i, T_i\) 是拼接後的 1x3 向量。
perViewErrors為每個模式檢視估計的平均重投影誤差輸出向量。
flags (標誌)flags 校準過程的不同標誌(詳見 calibrateCamera)。
criteria迭代最佳化演算法的終止條件。

此函式使用 Aruco Board 校準相機。函式接收來自 Board 的多個檢視的檢測標記列表。該過程類似於 calibrateCamera() 中的棋盤格校準。函式返回最終的重投影誤差。

已棄用
使用 Board::matchImagePointscv::solvePnP

◆ calibrateCameraAruco() [2/2]

double cv::aruco::calibrateCameraAruco ( InputArrayOfArrays corners,
InputArray ids,
InputArray counter,
const Ptr< Board > & board,
Size imageSize,
InputOutputArray cameraMatrix,
InputOutputArray distCoeffs,
OutputArrayOfArrays rvecs = noArray(),
OutputArrayOfArrays tvecs = noArray(),
int flags = 0,
const TermCriteria & criteria = TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, DBL_EPSILON) )
Python
cv.aruco.calibrateCameraAruco(corners, ids, counter, board, imageSize, cameraMatrix, distCoeffs[, rvecs[, tvecs[, flags[, criteria]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs
cv.aruco.calibrateCameraArucoExtended(corners, ids, counter, board, imageSize, cameraMatrix, distCoeffs[, rvecs[, tvecs[, stdDeviationsIntrinsics[, stdDeviationsExtrinsics[, perViewErrors[, flags[, criteria]]]]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs, stdDeviationsIntrinsics, stdDeviationsExtrinsics, perViewErrors

#include <opencv2/aruco/aruco_calib.hpp>

該函式與 calibrateCameraAruco 相同,但不包含校準誤差估計。

這是一個過載的成員函式,為方便起見而提供。它與上述函式的區別僅在於所接受的引數不同。

已棄用
使用 Board::matchImagePointscv::solvePnP

◆ calibrateCameraCharuco() [1/2]

double cv::aruco::calibrateCameraCharuco ( InputArrayOfArrays charucoCorners,
InputArrayOfArrays charucoIds,
const Ptr< CharucoBoard > & board,
Size imageSize,
InputOutputArray cameraMatrix,
InputOutputArray distCoeffs,
OutputArrayOfArrays rvecs,
OutputArrayOfArrays tvecs,
OutputArray stdDeviationsIntrinsics,
OutputArray stdDeviationsExtrinsics,
OutputArray perViewErrors,
int flags = 0,
const TermCriteria & criteria = TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, DBL_EPSILON) )
Python
cv.aruco.calibrateCameraCharuco(charucoCorners, charucoIds, board, imageSize, cameraMatrix, distCoeffs[, rvecs[, tvecs[, flags[, criteria]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs
cv.aruco.calibrateCameraCharucoExtended(charucoCorners, charucoIds, board, imageSize, cameraMatrix, distCoeffs[, rvecs[, tvecs[, stdDeviationsIntrinsics[, stdDeviationsExtrinsics[, perViewErrors[, flags[, criteria]]]]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs, stdDeviationsIntrinsics, stdDeviationsExtrinsics, perViewErrors

#include <opencv2/aruco/aruco_calib.hpp>

使用 Charuco 角點校準相機。

引數
charucoCorners每幀檢測到的 charuco 角點向量
charucoIds每幀 charucoCorners 中每個角點的識別符號列表
board標記板 Board 佈局
imageSize輸入影像尺寸
cameraMatrix輸出 3x3 浮點相機矩陣 \(A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\)。如果指定了 CV_CALIB_USE_INTRINSIC_GUESS 和/或 CV_CALIB_FIX_ASPECT_RATIO,則在呼叫函式前必須初始化 fx, fy, cx, cy 中的部分或全部。
distCoeffs輸出畸變係數向量 \((k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\),包含 4, 5, 8 或 12 個元素
rvecs為每個板檢視估計的旋轉向量輸出向量(例如 std::vector<cv::Mat>)。即,每個第 k 個旋轉向量與相應的第 k 個平移向量(見下一個輸出引數說明)一起,將板模式從模型座標空間(在其中指定物件點)變換到世界座標空間,即第 k 個模式檢視中板模式的真實位置(k=0.. M -1)。
tvecs為每個模式檢視估計的平移向量輸出向量。
stdDeviationsIntrinsics估計的內參引數標準差輸出向量。偏差值順序為:\((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, s_4, \tau_x, \tau_y)\)。如果某個引數未估計,其偏差等於零。
stdDeviationsExtrinsics估計的外參引數標準差輸出向量。偏差值順序為:\((R_1, T_1, \dotsc , R_M, T_M)\),其中 M 是模式檢視的數量,\(R_i, T_i\) 是拼接後的 1x3 向量。
perViewErrors為每個模式檢視估計的平均重投影誤差輸出向量。
flags (標誌)flags 校準過程的不同標誌(詳見 calibrateCamera)。
criteria迭代最佳化演算法的終止條件。

此函式使用 Charuco Board 的一組角點校準相機。函式接收來自 Board 的多個檢視的檢測角點及其識別符號列表。函式返回最終的重投影誤差。

已棄用
使用 CharucoBoard::matchImagePointscv::solvePnP

◆ calibrateCameraCharuco() [2/2]

double cv::aruco::calibrateCameraCharuco ( InputArrayOfArrays charucoCorners,
InputArrayOfArrays charucoIds,
const Ptr< CharucoBoard > & board,
Size imageSize,
InputOutputArray cameraMatrix,
InputOutputArray distCoeffs,
OutputArrayOfArrays rvecs = noArray(),
OutputArrayOfArrays tvecs = noArray(),
int flags = 0,
const TermCriteria & criteria = TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, DBL_EPSILON) )
Python
cv.aruco.calibrateCameraCharuco(charucoCorners, charucoIds, board, imageSize, cameraMatrix, distCoeffs[, rvecs[, tvecs[, flags[, criteria]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs
cv.aruco.calibrateCameraCharucoExtended(charucoCorners, charucoIds, board, imageSize, cameraMatrix, distCoeffs[, rvecs[, tvecs[, stdDeviationsIntrinsics[, stdDeviationsExtrinsics[, perViewErrors[, flags[, criteria]]]]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs, stdDeviationsIntrinsics, stdDeviationsExtrinsics, perViewErrors

#include <opencv2/aruco/aruco_calib.hpp>

該函式與 calibrateCameraCharuco 相同,但不包含校準誤差估計。

已棄用
使用 CharucoBoard::matchImagePointscv::solvePnP

◆ detectCharucoDiamond()

void cv::aruco::detectCharucoDiamond ( InputArray 影像,
InputArrayOfArrays markerCorners,
InputArray markerIds,
float squareMarkerLengthRate,
OutputArrayOfArrays diamondCorners,
OutputArray diamondIds,
InputArray cameraMatrix = noArray(),
InputArray distCoeffs = noArray(),
Ptr< Dictionary > dictionary = makePtrDictionary >(getPredefinedDictionary(PredefinedDictionaryType::DICT_4X4_50)) )
Python
cv.aruco.detectCharucoDiamond(image, markerCorners, markerIds, squareMarkerLengthRate[, diamondCorners[, diamondIds[, cameraMatrix[, distCoeffs[, dictionary]]]]]) -> diamondCorners, diamondIds

#include <opencv2/aruco/charuco.hpp>

檢測 ChArUco 鑽石標記。

引數
影像角點亞畫素處理所需的輸入影像。
markerCorners來自 detectMarkers 函式的檢測到的標記角點列表。
markerIdsmarkerCorners 中的標記 ID 列表。
squareMarkerLengthRate方塊長度與標記長度的比率:squareMarkerLengthRate = squareLength/markerLength。不需要真實單位。
diamondCorners檢測到的鑽石標記角點輸出列表(每個鑽石 4 個角點)。順序與標記角點相同:左上、右上、右下和左下。格式與 detectMarkers 返回的角點類似(例如 std::vector<std::vector<cv::Point2f> > )。
diamondIdsdiamondCorners 中鑽石的 ID。每個鑽石的 ID 實際上是 Vec4i 型別,因此每個鑽石有 4 個 ID,這些 ID 是組成鑽石的 aruco 標記的 ID。
cameraMatrix可選的相機校準矩陣。
distCoeffs可選的相機畸變係數。
字典指示標記型別的標記字典。

該函式從之前檢測到的 ArUco 標記中檢測鑽石標記。鑽石在 diamondCorners 和 diamondIds 引數中返回。如果提供了相機校準引數,鑽石搜尋基於重投影。否則,鑽石搜尋基於單應性。單應性比重投影快,但精度較低。

已棄用
使用 CharucoDetector::detectDiamonds

◆ detectMarkers()

void cv::aruco::detectMarkers ( InputArray 影像,
const Ptr< Dictionary > & 字典,
OutputArrayOfArrays corners,
OutputArray ids,
const Ptr< DetectorParameters > & parameters = makePtrDetectorParameters >(),
OutputArrayOfArrays rejectedImgPoints = noArray() )
Python
cv.aruco.detectMarkers(image, dictionary[, corners[, ids[, parameters[, rejectedImgPoints]]]]) -> corners, ids, rejectedImgPoints

#include <opencv2/aruco.hpp>

檢測標記

已棄用
使用類 ArucoDetector::detectMarkers

◆ drawCharucoDiamond()

void cv::aruco::drawCharucoDiamond ( const Ptr< Dictionary > & 字典,
Vec4i ids,
int squareLength,
int markerLength,
OutputArray img,
int marginSize = 0,
int borderBits = 1 )
Python
cv.aruco.drawCharucoDiamond(dictionary, ids, squareLength, markerLength[, img[, marginSize[, borderBits]]]) -> img

#include <opencv2/aruco/charuco.hpp>

繪製一個 ChArUco 鑽石標記。

引數
字典指示標記型別的標記字典。
idsChArUco 標記中每個 ArUco 標記的 4 個 ID 列表。
squareLength棋盤格方塊的尺寸(畫素)。
markerLength標記的尺寸(畫素)。
img帶有標記的輸出影像。該影像的大小將為 3*squareLength + 2*marginSize。
marginSize輸出影像中標記的最小頁邊距(畫素)
borderBits標記邊界的寬度。

此函式返回 ChArUco 標記的影像,可直接列印。

已棄用
使用 CharucoBoard::generateImage()

◆ drawPlanarBoard()

void cv::aruco::drawPlanarBoard ( const Ptr< Board > & board,
Size outSize,
OutputArray img,
int marginSize,
int borderBits )
Python
cv.aruco.drawPlanarBoard(board, outSize, marginSize, borderBits[, img]) -> img

#include <opencv2/aruco.hpp>

繪製平面板

已棄用
使用 Board::generateImage

◆ estimatePoseBoard()

int cv::aruco::estimatePoseBoard ( InputArrayOfArrays corners,
InputArray ids,
const Ptr< Board > & board,
InputArray cameraMatrix,
InputArray distCoeffs,
InputOutputArray rvec,
InputOutputArray tvec,
bool useExtrinsicGuess = false )
Python
cv.aruco.estimatePoseBoard(corners, ids, board, cameraMatrix, distCoeffs, rvec, tvec[, useExtrinsicGuess]) -> retval, rvec, tvec

◆ estimatePoseCharucoBoard()

bool cv::aruco::estimatePoseCharucoBoard ( InputArray charucoCorners,
InputArray charucoIds,
const Ptr< CharucoBoard > & board,
InputArray cameraMatrix,
InputArray distCoeffs,
InputOutputArray rvec,
InputOutputArray tvec,
bool useExtrinsicGuess = false )
Python
cv.aruco.estimatePoseCharucoBoard(charucoCorners, charucoIds, board, cameraMatrix, distCoeffs, rvec, tvec[, useExtrinsicGuess]) -> retval, rvec, tvec

#include <opencv2/aruco.hpp>

根據部分角點估計 ChArUco 板的姿態。

引數
charucoCorners檢測到的 charuco 角點向量
charucoIdscharucoCorners 中每個角點的識別符號列表
boardChArUco 板的佈局。
cameraMatrix輸入 3x3 浮點相機矩陣 \(A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\)
distCoeffs畸變係數向量 \((k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\),包含 4, 5, 8 或 12 個元素
rvec對應於板旋轉向量的輸出向量(例如 cv::Mat)(見 cv::Rodrigues)。
tvec對應於板平移向量的輸出向量(例如 cv::Mat)。
useExtrinsicGuess定義是否使用 rvectvec 的初始估計值。

此函式根據一些檢測到的角點估計 Charuco 板的姿態。函式檢查輸入的角點是否足夠且有效以執行姿態估計。如果姿態估計有效,返回 true,否則返回 false。

已棄用
使用 CharucoBoard::matchImagePointscv::solvePnP
另請參閱
使用 cv::drawFrameAxes 獲取物體點的世界座標系軸

◆ estimatePoseSingleMarkers()

void cv::aruco::estimatePoseSingleMarkers ( InputArrayOfArrays corners,
float markerLength,
InputArray cameraMatrix,
InputArray distCoeffs,
OutputArray rvecs,
OutputArray tvecs,
OutputArray objPoints = noArray(),
const Ptr< EstimateParameters > & estimateParameters = makePtrEstimateParameters >() )
Python
cv.aruco.estimatePoseSingleMarkers(corners, markerLength, cameraMatrix, distCoeffs[, rvecs[, tvecs[, objPoints[, estimateParameters]]]]) -> rvecs, tvecs, objPoints

◆ getBoardObjectAndImagePoints()

void cv::aruco::getBoardObjectAndImagePoints ( const Ptr< Board > & board,
InputArrayOfArrays detectedCorners,
InputArray detectedIds,
OutputArray objPoints,
OutputArray imgPoints )
Python
cv.aruco.getBoardObjectAndImagePoints(board, detectedCorners, detectedIds[, objPoints[, imgPoints]]) -> objPoints, imgPoints

#include <opencv2/aruco.hpp>

獲取板的物體點和影像點

已棄用
使用 Board::matchImagePoints

◆ interpolateCornersCharuco()

int cv::aruco::interpolateCornersCharuco ( InputArrayOfArrays markerCorners,
InputArray markerIds,
InputArray 影像,
const Ptr< CharucoBoard > & board,
OutputArray charucoCorners,
OutputArray charucoIds,
InputArray cameraMatrix = noArray(),
InputArray distCoeffs = noArray(),
int minMarkers = 2 )
Python
cv.aruco.interpolateCornersCharuco(markerCorners, markerIds, image, board[, charucoCorners[, charucoIds[, cameraMatrix[, distCoeffs[, minMarkers]]]]]) -> retval, charucoCorners, charucoIds

#include <opencv2/aruco/charuco.hpp>

插值計算 ChArUco 板角點的位置。

引數
markerCorners已檢測到的標記角點向量。對於每個標記,提供其四個角點(例如 std::vector<std::vector<cv::Point2f> > )。對於 N 個檢測到的標記,此陣列的維度應為 Nx4。角點順序應為順時針。
markerIdscorners 中每個標記的識別符號列表
影像角點精細化所需的輸入影像。注意,標記未被檢測,應在 corners 和 ids 引數中傳送。
boardChArUco 板的佈局。
charucoCorners插值後的棋盤格角點
charucoIds插值後的棋盤格角點識別符號
cameraMatrix可選的 3x3 浮點相機矩陣 \(A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\)
distCoeffs可選的畸變係數向量 \((k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\),包含 4, 5, 8 或 12 個元素
minMarkers返回 charuco 角點必須檢測到的相鄰標記數量

該函式接收檢測到的標記,並使用檢測到的 Aruco 標記返回 ChArUco 板棋盤格角點的 2D 位置。如果提供了相機引數,該過程基於近似姿態估計,否則基於區域性單應性。僅返回可見角點。對於每個角點,其對應的識別符號也在 charucoIds 中返回。函式返回插值角點的數量。

已棄用
使用 CharucoDetector::detectBoard

◆ refineDetectedMarkers()

void cv::aruco::refineDetectedMarkers ( InputArray 影像,
const Ptr< Board > & board,
InputOutputArrayOfArrays detectedCorners,
InputOutputArray detectedIds,
InputOutputArrayOfArrays rejectedCorners,
InputArray cameraMatrix = noArray(),
InputArray distCoeffs = noArray(),
float minRepDistance = 10.f,
float errorCorrectionRate = 3.f,
bool checkAllOrders = true,
OutputArray recoveredIdxs = noArray(),
const Ptr< DetectorParameters > & parameters = makePtrDetectorParameters >() )
Python
cv.aruco.refineDetectedMarkers(image, board, detectedCorners, detectedIds, rejectedCorners[, cameraMatrix[, distCoeffs[, minRepDistance[, errorCorrectionRate[, checkAllOrders[, recoveredIdxs[, parameters]]]]]]]) -> detectedCorners, detectedIds, rejectedCorners, recoveredIdxs

#include <opencv2/aruco.hpp>

細化檢測到的標記

已棄用
使用類 ArucoDetector::refineDetectedMarkers

◆ testCharucoCornersCollinear()

bool cv::aruco::testCharucoCornersCollinear ( const Ptr< CharucoBoard > & board,
InputArray charucoIds )
Python
cv.aruco.testCharucoCornersCollinear(board, charucoIds) -> retval