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

ArucoDetector クラスの主な機能は、detectMarkers() メソッドによる画像内のマーカー検出である。 続き...

#include <opencv2/objdetect/aruco_detector.hpp>

Collaboration diagram for cv::aruco::ArucoDetector:

公開メンバ関数

 ArucoDetector (const Dictionary &dictionary=getPredefinedDictionary(cv::aruco::DICT_4X4_50), const DetectorParameters &detectorParams=DetectorParameters(), const RefineParameters &refineParams=RefineParameters())
 基本的な ArucoDetector コンストラクタ。
 
 ArucoDetector (const std::vector< Dictionary > &dictionaries, const DetectorParameters &detectorParams=DetectorParameters(), const RefineParameters &refineParams=RefineParameters())
 複数辞書用の ArucoDetector コンストラクタ。
 
void detectMarkers (InputArray image, OutputArrayOfArrays corners, OutputArray ids, OutputArrayOfArrays rejectedImgPoints=noArray()) const
 基本的なマーカー検出。
 
void detectMarkersMultiDict (InputArray image, OutputArrayOfArrays corners, OutputArray ids, OutputArrayOfArrays rejectedImgPoints=noArray(), OutputArray dictIndices=noArray()) const
 基本的なマーカー検出。
 
void detectMarkersWithConfidence (InputArray image, OutputArrayOfArrays corners, OutputArray ids, OutputArray markersConfidence, OutputArrayOfArrays rejectedImgPoints=noArray()) const
 信頼度計算を伴うマーカー検出。
 
const DetectorParametersgetDetectorParameters () const
 
std::vector< DictionarygetDictionaries () const
 マーカー検出に現在使用されているすべての辞書をベクトルとして返す。
 
const DictionarygetDictionary () const
 マーカー検出に使用される内部リストの最初の辞書を返す。
 
const RefineParametersgetRefineParameters () const
 
virtual void read (const FileNode &fn) override
 ファイルストレージからアルゴリズムの引数を読み込む。
 
void refineDetectedMarkers (InputArray image, const Board &board, InputOutputArrayOfArrays detectedCorners, InputOutputArray detectedIds, InputOutputArrayOfArrays rejectedCorners, InputArray cameraMatrix=noArray(), InputArray distCoeffs=noArray(), OutputArray recoveredIdxs=noArray()) const
 すでに検出されたマーカーとボード配置に基づいて、検出されなかったマーカーを精緻化する。
 
void setDetectorParameters (const DetectorParameters &detectorParameters)
 
void setDictionaries (const std::vector< Dictionary > &dictionaries)
 既存の辞書を置き換え、マーカー検出に使用する辞書のコレクション全体を設定する。
 
void setDictionary (const Dictionary &dictionary)
 マーカー検出に使用する内部リストの最初の辞書を設定し置き換える。
 
void setRefineParameters (const RefineParameters &refineParameters)
 
virtual void write (FileStorage &fs) const override
 アルゴリズムの引数をファイルストレージに保存する。
 
void write (FileStorage &fs, const String &name)
 言語バインディング向けの簡易API
 
- Public Member Functions inherited from cv::Algorithm
 Algorithm ()
 
virtual ~Algorithm ()
 
virtual void clear ()
 アルゴリズムの状態をクリアする。
 
virtual bool empty () const
 Algorithm が空の場合(たとえば開始直後や読み込みに失敗した後)に true を返す。
 
virtual String getDefaultName () const
 
virtual void save (const String &filename) const
 
void write (FileStorage &fs, const String &name) const
 

限定公開変数類

Ptr< ArucoDetectorImpl > arucoDetectorImpl
 

Additional Inherited Members

- Static Public Member Functions inherited from cv::Algorithm
template<typename _Tp >
static Ptr< _Tpload (const String &filename, const String &objname=String())
 ファイルからアルゴリズムを読み込む。
 
template<typename _Tp >
static Ptr< _TploadFromString (const String &strModel, const String &objname=String())
 文字列からアルゴリズムを読み込む。
 
template<typename _Tp >
static Ptr< _Tpread (const FileNode &fn)
 ファイルノードからアルゴリズムを読み込む。
 
- Protected Member Functions inherited from cv::Algorithm
void writeFormat (FileStorage &fs) const
 

詳細説明

ArucoDetector クラスの主な機能は、detectMarkers() メソッドによる画像内のマーカー検出である。

画像内のいくつかのマーカーを検出した後、refineDetectedMarkers() メソッドを使って、この辞書から未検出のマーカーを見つけることを試みることができる。

参照
DetectorParameters, RefineParameters

構築子と解体子の詳解

◆ ArucoDetector() [1/2]

cv::aruco::ArucoDetector::ArucoDetector ( const Dictionary & dictionary = getPredefinedDictionary(cv::aruco::DICT_4X4_50),
const DetectorParameters & detectorParams = DetectorParameters(),
const RefineParameters & refineParams = RefineParameters() )
Python:
cv.aruco.ArucoDetector([, dictionary[, detectorParams[, refineParams]]]) -> <aruco_ArucoDetector object>
cv.aruco.ArucoDetector(dictionaries[, detectorParams[, refineParams]]) -> <aruco_ArucoDetector object>

基本的な ArucoDetector コンストラクタ。

引数
dictionary検索するマーカーの種類を指定する
detectorParamsマーカー検出のパラメータ
refineParamsマーカーの再検出のパラメータ
この関数の呼び出しグラフ:

◆ ArucoDetector() [2/2]

cv::aruco::ArucoDetector::ArucoDetector ( const std::vector< Dictionary > & dictionaries,
const DetectorParameters & detectorParams = DetectorParameters(),
const RefineParameters & refineParams = RefineParameters() )
Python:
cv.aruco.ArucoDetector([, dictionary[, detectorParams[, refineParams]]]) -> <aruco_ArucoDetector object>
cv.aruco.ArucoDetector(dictionaries[, detectorParams[, refineParams]]) -> <aruco_ArucoDetector object>

複数辞書用の ArucoDetector コンストラクタ。

引数
dictionaries検索するマーカーの種類を指定する。空の辞書はエラーを発生させる。
detectorParamsマーカー検出のパラメータ
refineParamsマーカーの再検出のパラメータ

メンバ関数詳解

◆ detectMarkers()

void cv::aruco::ArucoDetector::detectMarkers ( InputArray image,
OutputArrayOfArrays corners,
OutputArray ids,
OutputArrayOfArrays rejectedImgPoints = noArray() ) const
Python:
cv.aruco.ArucoDetector.detectMarkers(image[, corners[, ids[, rejectedImgPoints]]]) -> corners, ids, rejectedImgPoints

基本的なマーカー検出。

引数
image入力画像
corners検出されたマーカーのコーナーのベクトル。各マーカーについて、その4つのコーナーが与えられる(例: std::vector<std::vector<cv::Point2f> >)。N個のマーカーが検出された場合、この配列の次元は Nx4 となる。コーナーの順序は時計回りである。
ids検出されたマーカーの識別子のベクトル。識別子の型は int である(例: std::vector<int>)。N個のマーカーが検出された場合、ids のサイズも N となる。識別子は imgPoints 配列内のマーカーと同じ順序である。
rejectedImgPoints内部コードに正しい符号化がなされていない正方形の imgPoints を格納する。デバッグ目的に有用である。

入力画像内でマーカー検出を実行する。最初に指定された辞書に含まれるマーカーのみが探索される。検出された各マーカーについて、画像内のコーナーの2D位置と対応する識別子を返す。この関数は姿勢推定を行わないことに注意する。

覚え書き
この関数はレンズ歪みを補正せず、考慮もしない。カメラの引数が既知であれば、対応するカメラモデルで入力画像の歪みを除去することを推奨する。
参照
undistort, estimatePoseSingleMarkers, estimatePoseBoard
この関数の呼び出しグラフ:

◆ detectMarkersMultiDict()

void cv::aruco::ArucoDetector::detectMarkersMultiDict ( InputArray image,
OutputArrayOfArrays corners,
OutputArray ids,
OutputArrayOfArrays rejectedImgPoints = noArray(),
OutputArray dictIndices = noArray() ) const
Python:
cv.aruco.ArucoDetector.detectMarkersMultiDict(image[, corners[, ids[, rejectedImgPoints[, dictIndices]]]]) -> corners, ids, rejectedImgPoints, dictIndices

基本的なマーカー検出。

引数
image入力画像
corners検出されたマーカーのコーナーのベクトル。各マーカーについて、その4つのコーナーが与えられる(例: std::vector<std::vector<cv::Point2f> >)。N個のマーカーが検出された場合、この配列の次元は Nx4 となる。コーナーの順序は時計回りである。
ids検出されたマーカーの識別子のベクトル。識別子の型は int である(例: std::vector<int>)。N個のマーカーが検出された場合、ids のサイズも N となる。識別子は imgPoints 配列内のマーカーと同じ順序である。
rejectedImgPoints内部コードに正しい符号化がなされていない正方形の imgPoints を格納する。デバッグ目的に有用である。
dictIndices検出された各マーカーに対応する辞書インデックスのベクトル。対応する辞書のリストを取得するには getDictionaries() を使用する。

入力画像内でマーカー検出を実行する。指定された辞書群に含まれるマーカーのみが探索される。検出された各マーカーについて、画像内のコーナーの2D位置と対応する識別子を返す。この関数は姿勢推定を行わないことに注意する。

覚え書き
この関数はレンズ歪みを補正せず、考慮もしない。カメラの引数が既知であれば、対応するカメラモデルで入力画像の歪みを除去することを推奨する。
参照
undistort, estimatePoseSingleMarkers, estimatePoseBoard
この関数の呼び出しグラフ:

◆ detectMarkersWithConfidence()

void cv::aruco::ArucoDetector::detectMarkersWithConfidence ( InputArray image,
OutputArrayOfArrays corners,
OutputArray ids,
OutputArray markersConfidence,
OutputArrayOfArrays rejectedImgPoints = noArray() ) const
Python:
cv.aruco.ArucoDetector.detectMarkersWithConfidence(image[, corners[, ids[, markersConfidence[, rejectedImgPoints]]]]) -> corners, ids, markersConfidence, rejectedImgPoints

信頼度計算を伴うマーカー検出。

引数
image入力画像
corners検出されたマーカーのコーナーのベクトル。各マーカーについて、その4つのコーナーが与えられる(例: std::vector<std::vector<cv::Point2f> >)。N個のマーカーが検出された場合、この配列の次元は Nx4 となる。コーナーの順序は時計回りである。
ids検出されたマーカーの識別子のベクトル。識別子の型は int である(例: std::vector<int>)。N個のマーカーが検出された場合、ids のサイズも N となる。識別子は imgPoints 配列内のマーカーと同じ順序である。
markersConfidenceマーカー検出の正規化された信頼度 [0;1] を保持する。正規化された不確実性(誤ったピクセル検出の割合)を1から引いた値として定義され、1はピクセル単位で完全な検出を表す。信頼度の値は float 型である(例: std::vector<float>)
rejectedImgPoints内部コードに正しい符号化がなされていない正方形の imgPoints を格納する。デバッグ目的に有用である。

入力画像内でマーカー検出を実行する。最初に指定された辞書に含まれるマーカーのみが探索される。検出された各マーカーについて、画像内のコーナーの2D位置と対応する識別子を返す。この関数は姿勢推定を行わないことに注意する。

覚え書き
この関数はレンズ歪みを補正せず、考慮もしない。カメラの引数が既知であれば、対応するカメラモデルで入力画像の歪みを除去することを推奨する。
参照
undistort, estimatePoseSingleMarkers, estimatePoseBoard
この関数の呼び出しグラフ:

◆ getDetectorParameters()

const DetectorParameters & cv::aruco::ArucoDetector::getDetectorParameters ( ) const
Python:
cv.aruco.ArucoDetector.getDetectorParameters() -> retval

◆ getDictionaries()

std::vector< Dictionary > cv::aruco::ArucoDetector::getDictionaries ( ) const
Python:
cv.aruco.ArucoDetector.getDictionaries() -> retval

マーカー検出に現在使用されているすべての辞書をベクトルとして返す。

戻り値
ArucoDetector が使用するすべての辞書を格納した std::vector<Dictionary>。

◆ getDictionary()

const Dictionary & cv::aruco::ArucoDetector::getDictionary ( ) const
Python:
cv.aruco.ArucoDetector.getDictionary() -> retval

マーカー検出に使用される内部リストの最初の辞書を返す。

戻り値
設定された ArucoDetector の最初の辞書。

◆ getRefineParameters()

const RefineParameters & cv::aruco::ArucoDetector::getRefineParameters ( ) const
Python:
cv.aruco.ArucoDetector.getRefineParameters() -> retval

◆ read()

virtual void cv::aruco::ArucoDetector::read ( const FileNode & fn)
overridevirtual
Python:
cv.aruco.ArucoDetector.read(fn) -> None

ファイルストレージからアルゴリズムの引数を読み込む。

cv::Algorithm から再実装されている。

◆ refineDetectedMarkers()

void cv::aruco::ArucoDetector::refineDetectedMarkers ( InputArray image,
const Board & board,
InputOutputArrayOfArrays detectedCorners,
InputOutputArray detectedIds,
InputOutputArrayOfArrays rejectedCorners,
InputArray cameraMatrix = noArray(),
InputArray distCoeffs = noArray(),
OutputArray recoveredIdxs = noArray() ) const
Python:
cv.aruco.ArucoDetector.refineDetectedMarkers(image, board, detectedCorners, detectedIds, rejectedCorners[, cameraMatrix[, distCoeffs[, recoveredIdxs]]]) -> detectedCorners, detectedIds, rejectedCorners, recoveredIdxs

すでに検出されたマーカーとボード配置に基づいて、検出されなかったマーカーを精緻化する。

引数
image入力画像
boardボード内のマーカーの配置。
detectedCornersすでに検出されたマーカーコーナーのベクトル。
detectedIdsすでに検出されたマーカー識別子のベクトル。
rejectedCornersマーカー検出処理中に棄却された候補のベクトル。
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]])\)
recoveredIdxs復元された候補の、元の rejectedCorners 配列におけるインデックスを返すための省略可能な配列。

この関数は、基本的な detecMarkers 関数で検出されなかったマーカーを見つけることを試みる。まず、現在検出されているマーカーとボード配置に基づいて、欠落しているマーカーの位置を補間する。次に、minRepDistance と errorCorrectionRate 引数に基づいて、再投影されたマーカーと棄却された候補との対応を見つけることを試みる。カメラの引数と歪み係数が与えられている場合、欠落しているマーカーは projectPoint 関数を用いて再投影される。与えられていない場合、欠落しているマーカーの投影はグローバルホモグラフィを用いて補間され、ボード内のすべてのマーカーコーナーは同じZ座標を持つ必要がある。

覚え書き
この関数は、ボードが1つの辞書のマーカーのみを含むことを前提とするため、最初に設定された辞書のみが使用される。正しく動作するためには、ボードの辞書と一致している必要がある。
この関数の呼び出しグラフ:

◆ setDetectorParameters()

void cv::aruco::ArucoDetector::setDetectorParameters ( const DetectorParameters & detectorParameters)
Python:
cv.aruco.ArucoDetector.setDetectorParameters(detectorParameters) -> None

◆ setDictionaries()

void cv::aruco::ArucoDetector::setDictionaries ( const std::vector< Dictionary > & dictionaries)
Python:
cv.aruco.ArucoDetector.setDictionaries(dictionaries) -> None

既存の辞書を置き換え、マーカー検出に使用する辞書のコレクション全体を設定する。

引数
dictionaries使用する新しい辞書のセットを格納した std::vector<Dictionary>。

マーカー検出に、与えられた辞書のベクトルを使用するように ArucoDetector を設定する。このメソッドは、以前に設定されたすべての辞書を置き換える。

覚え書き
空の辞書ベクトルを設定するとエラーがスローされる。

◆ setDictionary()

void cv::aruco::ArucoDetector::setDictionary ( const Dictionary & dictionary)
Python:
cv.aruco.ArucoDetector.setDictionary(dictionary) -> None

マーカー検出に使用する内部リストの最初の辞書を設定し置き換える。

引数
dictionary内部リストの最初の辞書を置き換える新しい辞書。

◆ setRefineParameters()

void cv::aruco::ArucoDetector::setRefineParameters ( const RefineParameters & refineParameters)
Python:
cv.aruco.ArucoDetector.setRefineParameters(refineParameters) -> None

◆ write() [1/2]

virtual void cv::aruco::ArucoDetector::write ( FileStorage & fs) const
overridevirtual
Python:
cv.aruco.ArucoDetector.write(fs, name) -> None

アルゴリズムの引数をファイルストレージに保存する。

cv::Algorithm から再実装されている。

◆ write() [2/2]

void cv::aruco::ArucoDetector::write ( FileStorage & fs,
const String & name )
inline
Python:
cv.aruco.ArucoDetector.write(fs, name) -> None

言語バインディング向けの簡易API

メンバ変数詳解

◆ arucoDetectorImpl

Ptr<ArucoDetectorImpl> cv::aruco::ArucoDetector::arucoDetectorImpl
protected

このクラス詳解は次のファイルから抽出されました: