OpenCV 4.13.0
Open Source Computer Vision
読み込み中...
検索中...
見つかりません
🤖 AIによる機械翻訳(非公式) — これは OpenCV 4.13.0 公式リファレンス(英語)を AI (Claude) で自動翻訳したものです。訳に誤りを含む場合があります。正確な情報は 公式英語版(原文) を参照してください。
Aruco markers, module functionality was moved to objdetect module

詳細説明

ArUco マーカー検出。本モジュールの機能は objdetect モジュールへ移動された

参照
ArucoDetector, CharucoDetector, Board, GridBoard, CharucoBoard

クラス

struct  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 Diamondマーカーを検出する。
 
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 Diamondマーカーを描画する。
 
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)
 

列挙型詳解

◆ PatternPositionType

#include <opencv2/aruco/aruco_calib.hpp>

rvec/tvec はマーカーの右手座標系を定義する。

PatternPositionType はこの座標系の中心と軸方向を定義する。X 軸(赤色)が第1座標、Y 軸(緑色)が第2座標、Z 軸(青色)が第3座標である。

非推奨Deprecated
Board::matchImagePointscv::solvePnP を使用すること
参照
estimatePoseSingleMarkers()
列挙値
ARUCO_CCW_CENTER 
Python: cv.aruco.ARUCO_CCW_CENTER

マーカー座標系はマーカーの中心を原点とする。

マーカー自身の座標系における4つのコーナー(CCW順)の座標は次のとおり: (-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

マーカー座標系はマーカーの左上コーナーを原点とする。

マーカー自身の座標系における4つのコーナー(CW順)の座標は次のとおり: (0, 0, 0), (markerLength, 0, 0), (markerLength, markerLength, 0), (0, markerLength, 0)。

これらのパターンドットは、チェスボード/ChArUco ボードと併用するのに便利である。

関数詳解

◆ 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 内の各マーカーの識別子のリスト
countercorners と 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各ボードビューについて推定される回転ベクトル(Rodrigues を参照)の出力ベクトル(例: 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)\) いずれかのパラメータが推定されない場合、その偏差は 0 になる。
stdDeviationsExtrinsics外部パラメータについて推定された標準偏差の出力ベクトル。偏差値の順序は \((R_1, T_1, \dotsc , R_M, T_M)\) で、M はパターンビューの数、\(R_i, T_i\) は連結された 1x3 ベクトルである。
perViewErrors各パターンビューについて推定された平均再投影誤差の出力ベクトル。
flagsキャリブレーション処理のための各種フラグ(詳細は calibrateCamera を参照)。
criteria反復最適化アルゴリズムの終了条件。

この関数は Aruco Board を使用してカメラをキャリブレーションする。この関数は Board の複数のビューから検出されたマーカーのリストを受け取る。処理は calibrateCamera() におけるチェスボードキャリブレーションと同様である。この関数は最終的な再投影誤差を返す。

非推奨Deprecated
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 と同じ関数だが、キャリブレーション誤差の推定を行わないものである。

これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。

非推奨Deprecated
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各ボードビューについて推定される回転ベクトル(Rodrigues を参照)の出力ベクトル(例: 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)\) いずれかのパラメータが推定されない場合、その偏差は 0 になる。
stdDeviationsExtrinsics外部パラメータについて推定された標準偏差の出力ベクトル。偏差値の順序は \((R_1, T_1, \dotsc , R_M, T_M)\) で、M はパターンビューの数、\(R_i, T_i\) は連結された 1x3 ベクトルである。
perViewErrors各パターンビューについて推定された平均再投影誤差の出力ベクトル。
flagsキャリブレーション処理のための各種フラグ(詳細は calibrateCamera を参照)。
criteria反復最適化アルゴリズムの終了条件。

この関数は Charuco Board のコーナーの集合を使用してカメラをキャリブレーションする。この関数は Board の複数のビューから検出されたコーナーとその識別子のリストを受け取る。この関数は最終的な再投影誤差を返す。

非推奨Deprecated
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 と同じ関数だが、キャリブレーション誤差の推定を行わないものである。

非推奨Deprecated
CharucoBoard::matchImagePointscv::solvePnP を使用すること

◆ detectCharucoDiamond()

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 = 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 ダイヤモンドマーカーを検出する。

引数
imageコーナーのサブピクセル処理に必要な入力画像。
markerCornersdetectMarkers 関数から得られた、検出済みマーカーコーナーのリスト。
markerIdsmarkerCorners 内のマーカー id のリスト。
squareMarkerLengthRate正方形とマーカーの長さの比率: squareMarkerLengthRate = squareLength/markerLength。実際の単位は必須ではない。
diamondCorners検出されたダイヤモンドコーナーの出力リスト(ダイヤモンドごとに4コーナー)。順序はマーカーコーナーと同じで、左上、右上、右下、左下となる。detectMarkers が返すコーナーと同様の形式である(例: std::vector<std::vector<cv::Point2f> > )。
diamondIdsdiamondCorners 内のダイヤモンドの id。各ダイヤモンドの id は実際には Vec4i 型であり、各ダイヤモンドは4つの id を持つ。これらはダイヤモンドを構成する aruco マーカーの id である。
cameraMatrix省略可能なカメラキャリブレーション行列。
distCoeffs省略可能なカメラ歪み係数。
dictionaryマーカーの種類を示すマーカーの辞書。

この関数は、事前に検出された ArUco マーカーからダイヤモンドマーカーを検出する。ダイヤモンドは diamondCorners および diamondIds パラメータで返される。カメラキャリブレーションパラメータが与えられた場合、ダイヤモンドの探索は再投影に基づく。与えられない場合、ダイヤモンドの探索はホモグラフィに基づく。ホモグラフィは再投影より高速だが、精度は劣る。

非推奨Deprecated
CharucoDetector::detectDiamonds を使用すること

◆ detectMarkers()

void cv::aruco::detectMarkers ( InputArray image,
const Ptr< Dictionary > & 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>

マーカーを検出する

非推奨Deprecated
ArucoDetector::detectMarkers クラスを使用すること

◆ drawCharucoDiamond()

void cv::aruco::drawCharucoDiamond ( const Ptr< Dictionary > & 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ダイヤモンドマーカーを描画する。

引数
dictionaryマーカーの種類を示すマーカーの辞書。
idsChArUco マーカー内の各 ArUco マーカーに対する4つの id のリスト。
squareLengthチェスボードの正方形のサイズ(ピクセル単位)。
markerLengthマーカーのサイズ(ピクセル単位)。
imgマーカーを含む出力画像。この画像のサイズは 3*squareLength + 2*marginSize となる。
marginSize出力画像におけるマーカーの最小マージン(ピクセル単位)
borderBitsマーカーの境界線の幅。

この関数は、印刷可能な状態のChArUcoマーカー画像を返す。

非推奨Deprecated
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>

平面ボードを描画する

非推奨Deprecated
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

#include <opencv2/aruco.hpp>

非推奨Deprecated
Board::matchImagePointscv::solvePnP を使用すること

◆ 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)。
useExtrinsicGuessrvectvec の初期推定値を使用するかどうかを定義する。

この関数は、検出されたコーナーの一部からCharucoボードの姿勢を推定する。入力されたコーナーが姿勢推定を行うのに十分かつ有効かどうかを確認する。姿勢推定が有効な場合はtrueを返し、そうでない場合はfalseを返す。

非推奨Deprecated
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

#include <opencv2/aruco.hpp>

非推奨Deprecated
cv::solvePnP を使用する

◆ 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>

ボードのオブジェクト点と画像点を取得する

非推奨Deprecated
Board::matchImagePoints を使用する

◆ interpolateCornersCharuco()

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 )
Python:
cv.aruco.interpolateCornersCharuco(markerCorners, markerIds, image, board[, charucoCorners[, charucoIds[, cameraMatrix[, distCoeffs[, minMarkers]]]]]) -> retval, charucoCorners, charucoIds

#include <opencv2/aruco/charuco.hpp>

ChArUcoボードのコーナー位置を補間する。

引数
markerCorners既に検出済みのマーカーコーナーのベクトル。各マーカーについて4つのコーナーが与えられる(例: std::vector<std::vector<cv::Point2f> > )。N 個の検出済みマーカーに対して、この配列の次元は Nx4 となるべきである。コーナーの順序は時計回りであるべきである。
markerIdscorners 内の各マーカーの識別子のリスト
imageコーナーの精緻化に必要な入力画像。マーカーは検出されず、corners および ids パラメータで渡す必要があることに注意。
boardChArUco ボードのレイアウト。
charucoCorners補間されたチェスボードコーナー
charucoIds補間されたチェスボードコーナーの識別子
cameraMatrix省略可能な 3x3 の浮動小数点カメラ行列 \(A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\)
distCoeffs4、5、8、または12要素からなる省略可能な歪み係数のベクトル \((k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\)
minMarkerscharuco コーナーを返すために検出されている必要がある隣接マーカーの数

この関数は検出されたマーカーを受け取り、検出されたArucoマーカーを用いてChArUcoボードのチェスボードコーナーの2D位置を返す。カメラパラメータが与えられた場合は近似的な姿勢推定に基づき、そうでない場合は局所的なホモグラフィに基づいて処理を行う。可視のコーナーのみが返される。各コーナーについて、対応する識別子もcharucoIdsに返される。この関数は補間されたコーナーの数を返す。

非推奨Deprecated
CharucoDetector::detectBoard を使用する

◆ refineDetectedMarkers()

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 = 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>

検出されたマーカーを精緻化する

非推奨Deprecated
クラス ArucoDetector::refineDetectedMarkers を使用する

◆ testCharucoCornersCollinear()

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