OpenCV 4.5.3(日本語機械翻訳)
|
クラス |
|
struct | cv::aruco::DetectorParameters |
detectMarker処理のパラメータ。[【詳解】(英語]
|
|
class | cv::aruco::Board |
Boardマーカーの[【詳解】(英語]
|
|
class | cv::aruco::GridBoard |
マーカーを格子状に配置した平面ボード より一般的なタイプのボード。すべてのマーカーは同一平面上に格子状に配置されています。この碁盤を描くにはdrawPlanarBoard()関数 ([【詳解】(英語]
|
|
class | cv::aruco::CharucoBoard |
ChArUcoボード ChArUcoボードの固有クラスです。ChArUcoボードは、チェスボードの白いマス目の中にマーカーを配置した平面的なボードです。ChArUcoボードの利点は、ArUcoマーカーの汎用性と、キャリブレーションやポーズ推定に重要なチェスボードのコーナー精度の両方を実現できることです。このクラスでは、ChArUcoボードを簡単に作成、描画することもできます。[【詳解】(英語]
|
|
class | cv::aruco::Dictionary |
マーカーの辞書/セットです。内部のコード化を含みます[【詳解】(英語]
|
|
列挙型 |
|
enum | cv::aruco::CornerRefineMethod { cv::aruco::CORNER_REFINE_NONE , cv::aruco::CORNER_REFINE_SUBPIX , cv::aruco::CORNER_REFINE_CONTOUR , cv::aruco::CORNER_REFINE_APRILTAG } |
enum |
cv::aruco::PREDEFINED_DICTIONARY_NAME
{
DICT_4X4_50 = 0 , DICT_4X4_100 , DICT_4X4_250 , DICT_4X4_1000 , DICT_5X5_50 , DICT_5X5_100 , DICT_5X5_250 , DICT_5X5_1000 , DICT_6X6_50 , DICT_6X6_100 , DICT_6X6_250 , DICT_6X6_1000 , DICT_7X7_50 , DICT_7X7_100 , DICT_7X7_250 , DICT_7X7_1000 , DICT_ARUCO_ORIGINAL , cv::aruco::DICT_APRILTAG_16h5 , cv::aruco::DICT_APRILTAG_25h9 , cv::aruco::DICT_APRILTAG_36h10 , cv::aruco::DICT_APRILTAG_36h11 } |
定義済みのマーカーの辞書/セット 各辞書はビット数と含まれるマーカーの数を示す[【詳解】(英語]
|
|
関数 |
|
CV_EXPORTS_W void | cv::aruco::detectMarkers (InputArray image, const Ptr< Dictionary > &dictionary, OutputArrayOfArrays corners, OutputArray ids, const Ptr< DetectorParameters > ¶meters=DetectorParameters::create(), OutputArrayOfArrays rejectedImgPoints=noArray(), InputArray cameraMatrix=noArray(), InputArray distCoeff=noArray()) |
基本マーカー検出[【詳解】(英語]
|
|
CV_EXPORTS_W void | cv::aruco::estimatePoseSingleMarkers (InputArrayOfArrays corners, float markerLength, InputArray cameraMatrix, InputArray distCoeffs, OutputArray rvecs, OutputArray tvecs, OutputArray _objPoints=noArray()) |
単一のマーカーに対するポーズ推定[【詳解】(英語]
|
|
CV_EXPORTS_W int | cv::aruco::estimatePoseBoard (InputArrayOfArrays corners, InputArray ids, const Ptr< Board > &board, InputArray cameraMatrix, InputArray distCoeffs, InputOutputArray rvec, InputOutputArray tvec, bool useExtrinsicGuess=false) |
マーカーを配置したボードの姿勢推定[【詳解】(英語]
|
|
CV_EXPORTS_W 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 > ¶meters=DetectorParameters::create()) |
既に検出されたマーカーとボードのレイアウトに基づいて,検出されなかったマーカーを再検出します.[【詳解】(英語]
|
|
CV_EXPORTS_W void | cv::aruco::drawDetectedMarkers (InputOutputArray image, InputArrayOfArrays corners, InputArray ids=noArray(), Scalar borderColor=Scalar(0, 255, 0)) |
検出されたマーカを画像に描画します.[【詳解】(英語]
|
|
CV_EXPORTS_W void | cv::aruco::drawAxis (InputOutputArray image, InputArray cameraMatrix, InputArray distCoeffs, InputArray rvec, InputArray tvec, float length) |
ポーズ推定による座標軸の描画[【詳解】(英語]
|
|
CV_EXPORTS_W void | cv::aruco::drawMarker (const Ptr< Dictionary > &dictionary, int id, int sidePixels, OutputArray img, int borderBits=1) |
正準化されたマーカー画像を描画する[【詳解】(英語]
|
|
CV_EXPORTS_W void | cv::aruco::drawPlanarBoard (const Ptr< Board > &board, Size outSize, OutputArray img, int marginSize=0, int borderBits=1) |
平面状のボードを描画する[【詳解】(英語]
|
|
void | cv::aruco::_drawPlanarBoardImpl (Board *board, Size outSize, OutputArray img, int marginSize=0, int borderBits=1) |
生のポインタを受け取る drawPlanarBoard の実装.Boardポインタを受け取ります. |
|
cv::aruco::CV_EXPORTS_AS (calibrateCameraArucoExtended) double calibrateCameraAruco(InputArrayOfArrays corners | |
arucoマーカを用いたカメラの較正[【詳解】(英語]
|
|
CV_EXPORTS_W 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, TermCriteria criteria=TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, DBL_EPSILON)) |
これは #calibrateCameraAruco と同じ機能ですが,キャリブレーション誤差の推定は行いません. |
|
CV_EXPORTS_W void | cv::aruco::getBoardObjectAndImagePoints (const Ptr< Board > &board, InputArrayOfArrays detectedCorners, InputArray detectedIds, OutputArray objPoints, OutputArray imgPoints) |
ボード構成と検出されたマーカーのセットが与えられると、solvePnPを呼び出すために、対応する画像ポイントとオブジェクトポイントを返します[【詳解】(英語]
|
|
CV_EXPORTS_W 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ボードのコーナー位置の補間[【詳解】(英語]
|
|
CV_EXPORTS_W bool | cv::aruco::estimatePoseCharucoBoard (InputArray charucoCorners, InputArray charucoIds, const Ptr< CharucoBoard > &board, InputArray cameraMatrix, InputArray distCoeffs, InputOutputArray rvec, InputOutputArray tvec, bool useExtrinsicGuess=false) |
ChArUcoボードのコーナーの一部を用いたポーズ推定[【詳解】(英語]
|
|
CV_EXPORTS_W void | cv::aruco::drawDetectedCornersCharuco (InputOutputArray image, InputArray charucoCorners, InputArray charucoIds=noArray(), Scalar cornerColor=Scalar(255, 0, 0)) |
チャルーココーナーの描画[【詳解】(英語]
|
|
cv::aruco::CV_EXPORTS_AS (calibrateCameraCharucoExtended) double calibrateCameraCharuco(InputArrayOfArrays charucoCorners | |
Charucoコーナーを利用したカメラのキャリブレーション[【詳解】(英語]
|
|
CV_EXPORTS_W 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, TermCriteria criteria=TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, DBL_EPSILON)) |
calibrateCameraCharucoと同じ機能ですが,キャリブレーションエラーの推定を行いません. |
|
CV_EXPORTS_W void | cv::aruco::detectCharucoDiamond (InputArray image, InputArrayOfArrays markerCorners, InputArray markerIds, float squareMarkerLengthRate, OutputArrayOfArrays diamondCorners, OutputArray diamondIds, InputArray cameraMatrix=noArray(), InputArray distCoeffs=noArray()) |
ChArUco Diamondマーカーの検出[【詳解】(英語]
|
|
CV_EXPORTS_W void | cv::aruco::drawDetectedDiamonds (InputOutputArray image, InputArrayOfArrays diamondCorners, InputArray diamondIds=noArray(), Scalar borderColor=Scalar(0, 0, 255)) |
検出されたChArUcoダイヤモンドマーカーのセットを描画します。[【詳解】(英語]
|
|
CV_EXPORTS void | cv::aruco::drawCharucoDiamond (const Ptr< Dictionary > &dictionary, Vec4i ids, int squareLength, int markerLength, OutputArray img, int marginSize=0, int borderBits=1) |
ChArUcoダイヤモンドマーカーの描画[【詳解】(英語]
|
|
CV_EXPORTS_W bool | cv::aruco::testCharucoCornersCollinear (const Ptr< CharucoBoard > &_board, InputArray _charucoIds) |
ChArUcoマーカーが平行であるかどうかのテスト[【詳解】(英語]
|
|
CV_EXPORTS Ptr< Dictionary > | cv::aruco::getPredefinedDictionary (PREDEFINED_DICTIONARY_NAME name) |
PREDEFINED_DICTIONARY_NAMEで定義されている定義済みの辞書の一つを返します。 |
|
CV_EXPORTS_W Ptr< Dictionary > | cv::aruco::getPredefinedDictionary (int dict) |
DICT_* で参照される定義済みの辞書のうちのひとつを返します。 |
|
cv::aruco::CV_EXPORTS_AS (custom_dictionary) Ptr< Dictionary > generateCustomDictionary(int nMarkers | |
cv::aruco::CV_EXPORTS_AS (custom_dictionary_from) Ptr< Dictionary > generateCustomDictionary(int nMarkers | |
カスタマイズ可能な新しいマーカー辞書を生成します.[【詳解】(英語]
|
|
変数 |
|
InputArray | cv::aruco::ids |
InputArray InputArray | cv::aruco::counter |
InputArray InputArray const Ptr< Board > & | cv::aruco::board |
InputArray InputArray const Ptr< Board > Size | cv::aruco::imageSize |
InputArray InputArray const Ptr< Board > Size InputOutputArray | cv::aruco::cameraMatrix |
InputArray InputArray const Ptr< Board > Size InputOutputArray InputOutputArray | cv::aruco::distCoeffs |
InputArray InputArray const Ptr< Board > Size InputOutputArray InputOutputArray OutputArrayOfArrays | cv::aruco::rvecs |
InputArray InputArray const Ptr< Board > Size InputOutputArray InputOutputArray OutputArrayOfArrays OutputArrayOfArrays | cv::aruco::tvecs |
InputArray InputArray const Ptr< Board > Size InputOutputArray InputOutputArray OutputArrayOfArrays OutputArrayOfArrays OutputArray | cv::aruco::stdDeviationsIntrinsics |
InputArray InputArray const Ptr< Board > Size InputOutputArray InputOutputArray OutputArrayOfArrays OutputArrayOfArrays OutputArray OutputArray | cv::aruco::stdDeviationsExtrinsics |
InputArray InputArray const Ptr< Board > Size InputOutputArray InputOutputArray OutputArrayOfArrays OutputArrayOfArrays OutputArray OutputArray OutputArray | cv::aruco::perViewErrors |
InputArray InputArray const Ptr< Board > Size InputOutputArray InputOutputArray OutputArrayOfArrays OutputArrayOfArrays OutputArray OutputArray OutputArray int | cv::aruco::flags = 0 |
InputArray InputArray const Ptr< Board > Size InputOutputArray InputOutputArray OutputArrayOfArrays OutputArrayOfArrays OutputArray OutputArray OutputArray int TermCriteria | cv::aruco::criteria = TermCriteria(TermCriteria::COUNT + TermCriteria::EPS, 30, DBL_EPSILON)) |
InputArrayOfArrays | cv::aruco::charucoIds |
int | cv::aruco::markerSize |
int int | cv::aruco::randomSeed =0) |
int const Ptr< Dictionary > & | cv::aruco::baseDictionary |
This module is dedicated to square fiducial markers (also known as Augmented Reality Markers) These markers are useful for easy, fast and robust camera pose estimation.ç
The main functionalities are:
The implementation is based on the ArUco Library by R. Muñoz-Salinas and S. Garrido-Jurado [Aruco2014].
Markers can also be detected based on the AprilTag 2 [wang2016iros] fiducial detection method.
This module has been originally developed by Sergio Garrido-Jurado as a project for Google Summer of Code 2015 (GSoC 15).
定義済みのマーカーの辞書/セット 各辞書はビット数と含まれるマーカーの数を示す
cv::aruco::CV_EXPORTS_AS | ( | calibrateCameraArucoExtended | ) |
arucoマーカを用いたカメラの較正
corners | 全フレームで検出されたマーカーコーナーのベクトル。コーナーは detectMarkers が返すフォーマットと同じでなければなりません(#detectMarkers 参照)。 |
ids | コーナーにある各マーカーの識別子のリスト |
counter | コーナーとIDが分割できるように、各フレームのマーカーの数。 |
board | マーカーBoardレイアウト |
imageSize | 固有のカメラ行列を初期化するためだけに使われる画像のサイズ. |
cameraMatrix | 3x3浮動小数点カメラ行列の出力![]() |
distCoeffs | 歪み係数の出力ベクトル![]() |
rvecs | 各ボードビューに対して推定された回転ベクトル(Rodrigues参照)の出力ベクトル(例えば,std::vector<cv::Mat>>).つまり,各 k 番目の回転ベクトルは,対応する k 番目の並進ベクトル(次の出力パラメータの説明を参照)と共に,基板パターンをモデル座標空間(オブジェクトポイントが指定されている)からワールド座標空間に,つまり,k 番目のパターンビューにおける基板パターンの実位置(k=0.M-1). |
tvecs | パターンビューごとに推定された並進ベクトルの出力ベクトル. |
stdDeviationsIntrinsics | 固有パラメータについて推定された標準偏差の出力ベクトル.偏差値の順序。![]() |
stdDeviationsExtrinsics | 外部パラメータのために推定された標準偏差の出力ベクトル。偏差値の順序。![]() ![]() |
perViewErrors | 各パターンビューに対して推定された平均再投影誤差の出力ベクトル。 |
flags | flags キャリブレーション処理に関するさまざまなフラグ(詳細はcalibrateCameraを参照してください). |
criteria | 反復最適化アルゴリズムの終了基準. |
この関数は,Arucoを用いてカメラのキャリブレーションを行います.Board. この関数は,カメラの複数のビューから検出されたマーカーのリストを受け取ります.Board. のチェスボードキャリブレーションに似た処理を行います.calibrateCamera(). この関数は,最終的な再投影誤差を返します.
cv::aruco::CV_EXPORTS_AS | ( | calibrateCameraCharucoExtended | ) |
Charucoコーナーを利用したカメラのキャリブレーション
charucoCorners | フレームごとに検出されたcharucoコーナーのベクトル |
charucoIds | フレーム毎のcharucoCornersにおける各コーナーの識別子のリスト |
board | マーカーBoardレイアウト |
imageSize | 入力画像サイズ |
cameraMatrix | 3x3浮動小数点カメラ行列の出力![]() |
distCoeffs | 歪み係数の出力ベクトル![]() |
rvecs | 各ボードビューに対して推定された回転ベクトル(Rodrigues参照)の出力ベクトル(例えば,std::vector<cv::Mat>>).つまり,各 k 番目の回転ベクトルは,対応する k 番目の並進ベクトル(次の出力パラメータの説明を参照)と共に,基板パターンをモデル座標空間(オブジェクトポイントが指定されている)からワールド座標空間に,つまり,k 番目のパターンビューにおける基板パターンの実位置(k=0.M-1). |
tvecs | パターンビューごとに推定された並進ベクトルの出力ベクトル. |
stdDeviationsIntrinsics | 固有パラメータについて推定された標準偏差の出力ベクトル.偏差値の順序。![]() |
stdDeviationsExtrinsics | 外部パラメータのために推定された標準偏差の出力ベクトル。偏差値の順序。![]() ![]() |
perViewErrors | 各パターンビューに対して推定された平均再投影誤差の出力ベクトル。 |
flags | flags キャリブレーション処理に関するさまざまなフラグ(詳細はcalibrateCameraを参照してください). |
criteria | 反復最適化アルゴリズムの終了基準. |
この関数は,charucoのコーナーセットを用いてカメラのキャリブレーションを行います.Board. この関数は,カメラの複数のビューから検出されたコーナーのリストとその識別子を受け取ります.Board. この関数は,最終的な再投影誤差を返します.
cv::aruco::CV_EXPORTS_AS | ( | custom_dictionary | ) |
cv::aruco::CV_EXPORTS_AS | ( | custom_dictionary_from | ) |
カスタマイズ可能な新しいマーカー辞書を生成します.
nMarkers | 辞書に含まれるマーカの数 |
markerSize | 各マーカの1次元あたりのビット数 |
baseDictionary | この辞書に含まれるマーカを,最初に含める(オプション). |
randomSeed | のユーザ提供の種。theRNG() |
この関数は,nMarkers 個のマーカと, markerSize x markerSize 個のビットで構成される各マーカで構成される新しい辞書を作成します。baseDictionary が提供されている場合は,そのマーカーが直接含まれ,それに基づいて残りのマーカーが生成されます.baseDictionary のサイズが nMarkers より大きい場合は、baseDictionary 内の最初の nMarkers のみが使用され、新しいマーカーは追加されません。
CV_EXPORTS_W void cv::aruco::detectCharucoDiamond | ( | InputArray | image, |
InputArrayOfArrays | markerCorners, | ||
InputArray | markerIds, | ||
float | squareMarkerLengthRate, | ||
OutputArrayOfArrays | diamondCorners, | ||
OutputArray | diamondIds, | ||
InputArray |
cameraMatrix
=
noArray() ,
|
||
InputArray |
distCoeffs
=
noArray() |
||
) |
ChArUco Diamondマーカーの検出
image | コーナーサブピクセルに必要な入力画像 |
markerCorners | detectMarkers関数で検出されたマーカーコーナーのリスト。 |
markerIds | markerCorners内のマーカーIDのリスト |
squareMarkerLengthRate | 正方形の長さとマーカーの長さの比率: squareMarkerLengthRate = squareLength/markerLength. 実際の単位は必要ありません。 |
diamondCorners | 検出されたダイヤモンドコーナーのリストを出力します(1つのダイヤモンドにつき4つのコーナー)。順番はマーカーのコーナーと同じで、左上、右上、右下、左下です。detectMarkers が返すコーナーリスト(std::vector<std::vector<cv::Point2f> > など)と同様のフォーマットです。 |
diamondIds | diamondCornersには,ダイヤモンドのidが格納されています.各ダイヤモンドのidは,実際にはVec4i型なので,各ダイヤモンドは4つのidを持ち,それらはそのダイヤモンドを構成するarucoマーカーのidです. |
cameraMatrix | 任意のカメラキャリブレーションマトリックス。 |
distCoeffs | カメラの歪み係数(オプション)。 |
この関数は,以前に検出されたアルコマーカからダイヤモンドマーカを検出します。ダイヤモンドは, diamondCorners と diamondIds パラメータで返されます。カメラキャリブレーションパラメータが提供されている場合、ダイヤモンドの探索は、再投影に基づいて行われます。提供されていない場合は、ホモグラフィーに基づいてダイヤモンドを探索します。ホモグラフィーはリプロジェクションよりも高速ですが、検出率が若干低下します。
CV_EXPORTS_W void cv::aruco::detectMarkers | ( | InputArray | image, |
const Ptr< Dictionary > & | dictionary, | ||
OutputArrayOfArrays | corners, | ||
OutputArray | ids, | ||
const Ptr< DetectorParameters > & |
parameters
=
DetectorParameters::create() ,
|
||
OutputArrayOfArrays |
rejectedImgPoints
=
noArray() ,
|
||
InputArray |
cameraMatrix
=
noArray() ,
|
||
InputArray |
distCoeff
=
noArray() |
||
) |
基本マーカー検出
image | 入力画像 |
dictionary | 検索対象となるマーカーの種類を示します。 |
corners | 検出されたマーカーのコーナーのベクトル。各マーカーには、その4つのコーナーが提供されます(例:std::vector<std::vector<cv::Point2f> > )。N個のマーカーが検出された場合、この配列の次元はNx4となります。コーナーの順番は時計回りです。 |
ids | 検出されたマーカの識別子のベクトルです。識別子はint型です(例:std::vector<int>)。検出されたマーカーがN個の場合、idのサイズもN個になります。識別子は、imgPoints配列のマーカーと同じ順番になります。 |
parameters | マーカー検出パラメータ |
rejectedImgPoints | 内側のコードが正しくないマスのimgPointsを含みます。デバッグ用に便利です。 |
cameraMatrix | オプションの入力 3x3 浮動小数点型カメラ行列![]() |
distCoeff | オプションで,歪み係数のベクトル![]() |
入力画像中のマーカー検出を行います.特定の辞書に含まれるマーカのみが検索されます.検出された各マーカーに対して,画像中のコーナーの2次元位置と,それに対応する識別子が返されます.なお,この関数は姿勢推定を行いません.
CV_EXPORTS_W void cv::aruco::drawAxis | ( | InputOutputArray | image, |
InputArray | cameraMatrix, | ||
InputArray | distCoeffs, | ||
InputArray | rvec, | ||
InputArray | tvec, | ||
float | length | ||
) |
ポーズ推定による座標軸の描画
image | 入力/出力画像.1チャンネルまたは3チャンネルである必要があります。チャンネル数は変更されない。 |
cameraMatrix | 入力 3x3浮動小数点カメラ行列![]() |
distCoeffs | 歪み係数のベクトル![]() |
rvec | 描画される座標系の回転ベクトル。( |
tvec | 描画される座標系の並進ベクトル。 |
length | tvecと同じ単位で描かれた軸の長さ(通常はメートル単位) |
マーカーやボードの姿勢推定値が与えられたときに、ワールド座標系、つまりマーカーやボードを中心とした座標系の軸を描画する関数です。デバッグ用に便利です。
CV_EXPORTS void cv::aruco::drawCharucoDiamond | ( | const Ptr< Dictionary > & | dictionary, |
Vec4i | ids, | ||
int | squareLength, | ||
int | markerLength, | ||
OutputArray | img, | ||
int |
marginSize
=
0 ,
|
||
int |
borderBits
=
1 |
||
) |
ChArUcoダイヤモンドマーカーの描画
dictionary | マーカーの種類を示すマーカーの辞書。 |
ids | ChArUcoマーカーの各ArUcoマーカーの4つのidのリスト。 |
squareLength | チェスボードのマスの大きさ(単位:ピクセル |
markerLength | マーカーのサイズ(ピクセル) |
img | マーカーを使った出力画像。この画像のサイズは、3*squareLength + 2*marginSize,. |
marginSize | 出力画像内のマーカーの最小余白(ピクセル単位)。 |
borderBits | マーカーの境界線の幅 |
この関数は、印刷可能なChArUcoマーカーの画像を返します。
CV_EXPORTS_W void cv::aruco::drawDetectedCornersCharuco | ( | InputOutputArray | image, |
InputArray | charucoCorners, | ||
InputArray |
charucoIds
=
noArray() ,
|
||
Scalar |
cornerColor
=
Scalar(255, 0, 0) |
||
) |
チャルーココーナーの描画
image | 入力/出力画像.1チャンネルまたは3チャンネルである必要があります。チャンネル数は変更されない。 |
charucoCorners | 検出されたチャルーココーナーのベクトル |
charucoIds | charucoCornersの各コーナーの識別子のリスト |
cornerColor | 各コーナーを囲む正方形の色 |
この関数は、検出されたCharucoコーナーのセットを描画します。identifiers vectorが指定された場合は、各コーナーのidも描画します。
CV_EXPORTS_W void cv::aruco::drawDetectedDiamonds | ( | InputOutputArray | image, |
InputArrayOfArrays | diamondCorners, | ||
InputArray |
diamondIds
=
noArray() ,
|
||
Scalar |
borderColor
=
Scalar(0, 0, 255) |
||
) |
検出されたChArUcoダイヤモンドマーカーのセットを描画します。
image | 入力/出力画像.1チャンネルまたは3チャンネルである必要があります。チャンネル数は変更されない。 |
diamondCorners | で返されるのと同じフォーマットで、ダイヤモンドコーナーの位置を示します。detectCharucoDiamond(). (例: std::vector<std::vector<cv::Point2f> > ). N個のマーカを検出した場合,この配列の次元はNx4になります.コーナーの順番は時計回りにします。 |
diamondIds | diamondCornersに含まれるダイヤモンドの識別子のベクトルで、以下で返されるのと同じ形式です。detectCharucoDiamond()(例:std::vector<Vec4i>). オプションで、提供されない場合は、IDは描かれません。 |
borderColor | マーカーの境界線の色を指定します。残りの色(テキストの色と最初のコーナーの色)は、この色に基づいて計算されます。 |
検出されたダイヤモンドの配列が与えられると,この関数はそれらを画像上に描画します.マーカーの境界線が描画され、マーカーの識別子が与えられていればそれも描画されます。デバッグ用に便利です。
CV_EXPORTS_W void cv::aruco::drawDetectedMarkers | ( | InputOutputArray | image, |
InputArrayOfArrays | corners, | ||
InputArray |
ids
=
noArray() ,
|
||
Scalar |
borderColor
=
Scalar(0, 255, 0) |
||
) |
検出されたマーカを画像に描画します.
image | 入力/出力画像.1チャンネルまたは3チャンネルである必要があります。チャンネル数は変更されない。 |
corners | 入力画像上のマーカーの角の位置を指定します.(例: std::vector<std::vector<cv::Point2f> > ). 検出されたマーカーが N 個の場合,この配列の次元は Nx4 となります.コーナーの順番は時計回りにします。 |
ids | markersCorners内のマーカーの識別子のベクトルです.オプションで,提供されない場合は,IDは描かれません. |
borderColor | マーカーの境界線の色.残りの色 (テキストの色と最初のコーナーの色) は,視覚化を向上させるために,この色に基づいて計算されます. |
検出されたマーカコーナーの配列と,それに対応する ID が与えられると,この関数は画像上にマーカを描画します.マーカーの境界が描画され,マーカーの識別子が与えられていればそれも描画されます.デバッグ用に便利です。
CV_EXPORTS_W void cv::aruco::drawMarker | ( | const Ptr< Dictionary > & | dictionary, |
int | id, | ||
int | sidePixels, | ||
OutputArray | img, | ||
int |
borderBits
=
1 |
||
) |
正準化されたマーカー画像を描画する
dictionary | マーカの種類を示すマーカの辞書 |
id | 返されるマーカーの識別子。指定された辞書に登録されている有効なidでなければいけません。 |
sidePixels | 画像の大きさ(ピクセル単位 |
img | マーカーが描かれた出力画像 |
borderBits | マーカーの境界線の幅を指定します。 |
この関数は、マーカー画像を標準的な形(つまり、すぐに印刷できる状態)で返します。
CV_EXPORTS_W void cv::aruco::drawPlanarBoard | ( | const Ptr< Board > & | board, |
Size | outSize, | ||
OutputArray | img, | ||
int |
marginSize
=
0 ,
|
||
int |
borderBits
=
1 |
||
) |
平面状のボードを描画する
board | 描画される碁盤のレイアウトを指定します。盤面は平面でなければならず,z座標は無視されます. |
outSize | は,出力画像のサイズをピクセル単位で表します. |
img | の出力画像にボードが表示されます.この画像のサイズはoutSizeとなり、碁盤のプロポーションを保ったまま中央に碁盤が配置されます。 |
marginSize | 出力画像内のボードの最小余白(ピクセル単位 |
borderBits | マーカーの境界線の幅 |
この関数は、印刷可能な状態の平面ボードのイメージを返します。これは、指定されたレイアウトが平面であることをBoard指定されたレイアウトが平面であると仮定して,オブジェクトポイントのz座標を無視します.
CV_EXPORTS_W int cv::aruco::estimatePoseBoard | ( | InputArrayOfArrays | corners, |
InputArray | ids, | ||
const Ptr< Board > & | board, | ||
InputArray | cameraMatrix, | ||
InputArray | distCoeffs, | ||
InputOutputArray | rvec, | ||
InputOutputArray | tvec, | ||
bool |
useExtrinsicGuess
=
false |
||
) |
マーカーを配置したボードの姿勢推定
corners | 既に検出されたマーカーのコーナーのベクトル.各マーカーには、その4つのコーナーが提供されます(例:std::vector<std::vector<cv::Point2f> >)。N個のマーカーを検出した場合、この配列の次元はNx4になります。角の順番は時計回りでなければなりません。 |
ids | コーナーにある各マーカーの識別子のリスト |
board | ボード上のマーカーのレイアウト。レイアウトは、マーカーの識別子と、ボードのリファレンスシステムにおける各マーカーのコーナーの位置によって構成されます。 |
cameraMatrix | 入力 3x3浮動小数点カメラ行列![]() |
distCoeffs | 歪み係数のベクトル![]() |
rvec | 出力ベクトル(例cv::Mat)は、碁盤の回転ベクトルに対応しています(参照cv::Rodrigues). 空でなければ初期推測として使用されます。 |
tvec | 出力ベクトル(例cv::Mat)は、ボードの並進ベクトルに対応します。 |
useExtrinsicGuess | の初期推測が空であるかどうかを定義します.rvecおよびtvecの初期推測が使われるかどうかを定義します。空でなければ初期推定値として使われます。 |
この関数は、検出されたマーカーを受け取り、それらのマーカーで構成されるマーカーボードのポーズを返します。ABoardのマーカーは,ボードのレイアウトによって定義される単一のワールド座標系を持ちます.返される変換は,ボードの座標系からカメラの座標系に点を変換するものです.ボードレイアウトに含まれていない入力マーカーは無視されます。この関数は,ボードの姿勢推定に採用された入力から,マーカーの数を返します.なお、0を返した場合は、ポーズが推定されていないことを意味します。
CV_EXPORTS_W bool cv::aruco::estimatePoseCharucoBoard | ( | InputArray | charucoCorners, |
InputArray | charucoIds, | ||
const Ptr< CharucoBoard > & | board, | ||
InputArray | cameraMatrix, | ||
InputArray | distCoeffs, | ||
InputOutputArray | rvec, | ||
InputOutputArray | tvec, | ||
bool |
useExtrinsicGuess
=
false |
||
) |
ChArUcoボードのコーナーの一部を用いたポーズ推定
charucoCorners | 検出されたチャルーココーナーのベクトル |
charucoIds | charucoCornersの各コーナーの識別子のリスト |
board | ChArUcoボードのレイアウト。 |
cameraMatrix | 入力 3x3浮動小数点カメラ行列![]() |
distCoeffs | 歪み係数のベクトル![]() |
rvec | 出力ベクトル(例cv::Mat)は、碁盤の回転ベクトルに対応しています(参照cv::Rodrigues). |
tvec | 出力ベクトル(例cv::Mat)は、ボードの並進ベクトルに対応します。 |
useExtrinsicGuess | の初期推測が空であるかどうかを定義します.rvecおよびtvecを使用するかどうかを決定します。 |
この関数は、検出されたいくつかのコーナーからCharucoボードのポーズを推定します。この関数は,入力されたコーナーが,ポーズ推定を行うのに十分かつ有効であるかどうかをチェックします.ポーズ推定が有効であればtrueを返し、そうでなければfalseを返します。
CV_EXPORTS_W void cv::aruco::estimatePoseSingleMarkers | ( | InputArrayOfArrays | corners, |
float | markerLength, | ||
InputArray | cameraMatrix, | ||
InputArray | distCoeffs, | ||
OutputArray | rvecs, | ||
OutputArray | tvecs, | ||
OutputArray |
_objPoints
=
noArray() |
||
) |
単一のマーカーに対するポーズ推定
corners | 既に検出されたマーカーのコーナーのベクトル.各マーカーには、その4つのコーナーが提供されます(例:std::vector<std::vector<cv::Point2f> >)。N個のマーカーを検出した場合、この配列の次元はNx4になります。角の順番は時計回りでなければなりません。 |
markerLength | マーカーの辺の長さを指定します.戻ってくる並進ベクトルは同じ単位になります。通常,単位はメートルです。 |
cameraMatrix | 入力 3x3浮動小数点カメラ行列![]() |
distCoeffs | 歪み係数のベクトル![]() |
rvecs | 出力される回転ベクトルの配列( |
tvecs | 出力並進ベクトルの配列 (例: std::vector<cv::Vec3d>). tvecsの各要素は,imgPointsの特定のマーカーに対応します. |
_objPoints | 全てのマーカーの角のオブジェクトポイントの配列 |
この関数は,検出されたマーカーを受け取り,そのカメラに対する姿勢推定値を個別に返します.つまり,各マーカに対して,1つの回転ベクトルと並進ベクトルが返されます.返される変換は,各マーカの座標系からカメラの座標系に点を変換するものです.マーカー座標系は、マーカーの中央を中心とし、Z軸はマーカー平面に垂直です。マーカーの四隅の座標を独自の座標系で表すと (-markerLength/2, markerLength/2, 0)、(markerLength/2, markerLength/2, 0)、(markerLength/2, -markerLength/2, 0)、(-markerLength/2, -markerLength/2, 0)
CV_EXPORTS_W void cv::aruco::getBoardObjectAndImagePoints | ( | const Ptr< Board > & | board, |
InputArrayOfArrays | detectedCorners, | ||
InputArray | detectedIds, | ||
OutputArray | objPoints, | ||
OutputArray | imgPoints | ||
) |
ボード構成と検出されたマーカーのセットが与えられると、solvePnPを呼び出すために、対応する画像ポイントとオブジェクトポイントを返します
board | マーカーボードのレイアウト。 |
detectedCorners | ボードの検出されたマーカーコーナーのリスト |
detectedIds | 各マーカーの識別子のリスト |
objPoints | 碁盤座標空間における碁盤マーカー点のベクター |
imgPoints | 碁盤のマーカーコーナー点の投影像のベクトル |
CV_EXPORTS_W 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ボードのコーナー位置の補間
markerCorners | 既に検出されたマーカーのコーナーのベクトル.各マーカーには、その4つのコーナーが提供されます(例:std::vector<std::vector<cv::Point2f> >)。N個のマーカーを検出した場合、この配列の次元はNx4になります。角の順番は時計回りでなければなりません。 |
markerIds | コーナーにある各マーカーの識別子のリスト |
image | コーナーの精密化に必要な入力画像。なお、マーカーは検出されませんので、 corners および ids パラメータで指定してください。 |
board | ChArUcoボードのレイアウト。 |
charucoCorners | 補間されたチェスボードの角 |
charucoIds | 補間されたチェスボードのコーナーの識別子 |
cameraMatrix | 3x3浮動小数点型カメラ行列(オプション![]() |
distCoeffs | オプションで,歪み係数のベクトル![]() |
minMarkers | charucoコーナーを返すために検出されなければならない,隣接するマーカーの数 |
この関数は、検出されたマーカーを受け取り、検出されたArucoマーカーを使って、ChArUcoボードからチェスボードコーナーの2D位置を返します。カメラパラメータが与えられている場合は,近似的な姿勢推定に基づいて処理が行われ,そうでない場合は,局所的なホモグラフィに基づいて処理が行われます.見えているコーナーのみが返されます。また,各コーナーに対応する識別子が charucoIds で返されます.この関数は,補間されたコーナーの数を返します.
CV_EXPORTS_W 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
=
DetectorParameters::create() |
||
) |
既に検出されたマーカーとボードのレイアウトに基づいて,検出されなかったマーカーを再検出します.
image | 入力画像 |
board | ボード内のマーカーのレイアウト。 |
detectedCorners | 既に検出されたマーカーのコーナーのベクトル。 |
detectedIds | 既に検出されたマーカーの識別子のベクトル |
rejectedCorners | マーカー検出処理中に拒否された候補のベクトル。 |
cameraMatrix | オプションの入力 3x3 浮動小数点型カメラ行列![]() |
distCoeffs | オプションで,歪み係数のベクトル![]() |
minRepDistance | 棄却された候補の角と再投影されたマーカの角の間の、対応関係とみなすための最小距離。 |
errorCorrectionRate | 使用される辞書の誤り訂正能力に対する、許容される誤りビットの割合。-1は,誤り訂正のステップを無視している. |
checkAllOrders | rejectedCorners配列では,4つの可能なコーナーオーダーを考慮します.falseに設定すると、指定されたコーナーオーダーのみを考慮します(デフォルトはtrue)。 |
recoveredIdxs | オプションの配列で,元の rejectedCorners 配列に含まれる,復元された候補のインデックスを返します. |
parameters | マーカー検出パラメータ |
この関数は、基本的な detecMarkers 関数で検出されなかったマーカーの検出を試みます。まず,現在検出されているマーカーとボードのレイアウトに基づいて,見つからないマーカーの位置を補間します.そして,minRepDistance と errorCorrectionRate パラメータに基づいて,再投影されたマーカと不合格になった候補との間の対応関係を見つけようとします.カメラパラメータと歪み係数が提供されている場合は、projectPoint関数を用いて欠損マーカーを再投影します。提供されていない場合,欠損マーカーの投影はグローバルホモグラフィーを用いて補間され,ボード内のすべてのマーカーコーナーは同じZ座標を持つ必要があります。
CV_EXPORTS_W bool cv::aruco::testCharucoCornersCollinear | ( | const Ptr< CharucoBoard > & | _board, |
InputArray | _charucoIds | ||
) |
ChArUcoマーカーが平行であるかどうかのテスト
_board | ChArUcoボードのレイアウト。 |
_charucoIds | フレームごとの charucoCorners の各コーナーの識別子のリストです。 |
charucoIDsのidの数は,ボードに含まれるチェスボードのコーナーの数よりも少なくなければなりません.この関数は、charucoのコーナーが直線上にあるかどうかをチェックし(あればtrueを返す)、そうでなければ(false)を返します。軸の平行はもちろん、対角線やその他の直線も検出されます。退化したケース:charucoIDの数が2以下の場合、この関数はtrueを返します。