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

Dictionary は同一サイズの一意なArUcoマーカーの集合である。 詳細...

#include <opencv2/objdetect/aruco_dictionary.hpp>

Collaboration diagram for cv::aruco::Dictionary:

公開メンバ関数

 Dictionary ()
 
 Dictionary (const Mat &bytesList, int _markerSize, int maxcorr=0)
 基本的なArUco辞書のコンストラクタ。
 
void generateImageMarker (int id, int sidePixels, OutputArray _img, int borderBits=1) const
 正規のマーカー画像を生成する。
 
int getDistanceToId (InputArray bits, int id, bool allRotations=true) const
 入力ビットの特定のidに対するHamming距離を返す。
 
Mat getMarkerBits (int markerId, int rotationId=0) const
 正解ビットをfloatで取得する。
 
bool identify (const Mat &onlyBits, int &idx, int &rotation, double maxCorrectionRate) const
 ビット行列が与えられたとき、マーカーが識別されるかどうかを返す。
 
bool identify (const Mat &onlyCellPixelRatio, int &idx, int &rotation, double maxCorrectionRate, float validBitIdThreshold) const
 0から1の範囲のピクセル比率の行列を与え、マーカーが識別されたかどうかを返す。
 
bool readDictionary (const cv::FileNode &fn)
 FileNode から新しい辞書を読み込む。
 
void writeDictionary (FileStorage &fs, const String &name=String())
 辞書を FileStorage に書き込む。フォーマットは readDictionary() と同じである。
 

静的公開メンバ関数

static Mat getBitsFromByteList (const Mat &byteList, int markerSize, int rotationId=0)
 バイト列をビット行列に変換する。
 
static Mat getByteListFromBits (const Mat &bits)
 ビット行列を4つのマーカー回転を含むバイト列に変換する。
 

公開変数類

Mat bytesList
 マーカーコード情報。詳細はクラスの説明を参照
 
int markerSize
 次元あたりのビット数
 
int maxCorrectionBits
 訂正可能なビット数の最大値
 

詳細説明

Dictionary は同一サイズの一意なArUcoマーカーの集合である。

bytesList は4チャンネルの2次元 Mat として格納され(CV_8UC4型が使用された)、マーカーのコードワードを含む。各要素は次のとおり:

  • bytesList.rows は辞書のサイズである
  • 各マーカーは nbytes = ceil(markerSize*markerSize/8.) バイトでエンコードされる
  • 各行はマーカーの4つの回転すべてを含むため、その長さは 4*nbytes である
  • the byte order in the bytesList[i] row: //bytes without rotation/bytes with rotation 1/bytes with rotation 2/bytes with rotation 3// So bytesList.ptr(i)[k*nbytes + j] is the j-th byte of i-th marker, in its k-th rotation.
    覚え書き
    Pythonバインディングは bytesList の形状が dictionary_size x nbytes x 4 の行列を生成するが、C++版と同じようにインデックス指定すべきである。i番目のマーカーのk番目の回転におけるj番目のバイトのPythonの例:aruco_dict.bytesList[id].ravel()[k*nbytes + j]

構築子と解体子の詳解

◆ Dictionary() [1/2]

cv::aruco::Dictionary::Dictionary ( )
Python:
cv.aruco.Dictionary() -> <aruco_Dictionary object>
cv.aruco.Dictionary(bytesList, _markerSize[, maxcorr]) -> <aruco_Dictionary object>

◆ Dictionary() [2/2]

cv::aruco::Dictionary::Dictionary ( const Mat & bytesList,
int _markerSize,
int maxcorr = 0 )
Python:
cv.aruco.Dictionary() -> <aruco_Dictionary object>
cv.aruco.Dictionary(bytesList, _markerSize[, maxcorr]) -> <aruco_Dictionary object>

基本的なArUco辞書のコンストラクタ。

引数
bytesList辞書内のすべてのArUcoマーカーのビット。メモリレイアウトはクラスの説明を参照
_markerSizeArUcoマーカーのサイズ(単位付き)
maxcorr訂正可能なビットの最大数

メンバ関数詳解

◆ generateImageMarker()

void cv::aruco::Dictionary::generateImageMarker ( int id,
int sidePixels,
OutputArray _img,
int borderBits = 1 ) const
Python:
cv.aruco.Dictionary.generateImageMarker(id, sidePixels[, _img[, borderBits]]) -> _img

正規のマーカー画像を生成する。

◆ getBitsFromByteList()

static Mat cv::aruco::Dictionary::getBitsFromByteList ( const Mat & byteList,
int markerSize,
int rotationId = 0 )
static
Python:
cv.aruco.Dictionary.getBitsFromByteList(byteList, markerSize[, rotationId]) -> retval
cv.aruco.Dictionary_getBitsFromByteList(byteList, markerSize[, rotationId]) -> retval

バイト列をビット行列に変換する。

◆ getByteListFromBits()

static Mat cv::aruco::Dictionary::getByteListFromBits ( const Mat & bits)
static
Python:
cv.aruco.Dictionary.getByteListFromBits(bits) -> retval
cv.aruco.Dictionary_getByteListFromBits(bits) -> retval

ビット行列を4つのマーカー回転を含むバイト列に変換する。

◆ getDistanceToId()

int cv::aruco::Dictionary::getDistanceToId ( InputArray bits,
int id,
bool allRotations = true ) const
Python:
cv.aruco.Dictionary.getDistanceToId(bits, id[, allRotations]) -> retval

入力ビットと指定したidとの Hamming 距離を返す。

allRotations フラグが設定されている場合、マーカーの4通りの回転が考慮される

◆ getMarkerBits()

Mat cv::aruco::Dictionary::getMarkerBits ( int markerId,
int rotationId = 0 ) const
Python:
cv.aruco.Dictionary.getMarkerBits(markerId[, rotationId]) -> retval

正解ビットをfloatで取得する。

◆ identify() [1/2]

bool cv::aruco::Dictionary::identify ( const Mat & onlyBits,
int & idx,
int & rotation,
double maxCorrectionRate ) const
Python:
cv.aruco.Dictionary.identify(onlyBits, maxCorrectionRate) -> retval, idx, rotation
cv.aruco.Dictionary.identify(onlyCellPixelRatio, maxCorrectionRate, validBitIdThreshold) -> retval, idx, rotation

ビット行列を与えると、マーカーが識別されたかどうかを返す。

辞書内のマーカーid(存在する場合)とその回転への参照を返す。

◆ identify() [2/2]

bool cv::aruco::Dictionary::identify ( const Mat & onlyCellPixelRatio,
int & idx,
int & rotation,
double maxCorrectionRate,
float validBitIdThreshold ) const
Python:
cv.aruco.Dictionary.identify(onlyBits, maxCorrectionRate) -> retval, idx, rotation
cv.aruco.Dictionary.identify(onlyCellPixelRatio, maxCorrectionRate, validBitIdThreshold) -> retval, idx, rotation

0から1の範囲のピクセル比率の行列を与え、マーカーが識別されたかどうかを返す。

辞書内のマーカーid(存在する場合)とその回転への参照を返す。

◆ readDictionary()

bool cv::aruco::Dictionary::readDictionary ( const cv::FileNode & fn)
Python:
cv.aruco.Dictionary.readDictionary(fn) -> retval

FileNode から新しい辞書を読み込む。

YAMLフォーマットでの Dictionary の例:
nmarkers: 35
markersize: 6
maxCorrectionBits: 5
marker_0: "101011111011111001001001101100000000"
...
marker_34: "011111010000111011111110110101100101"

◆ writeDictionary()

void cv::aruco::Dictionary::writeDictionary ( FileStorage & fs,
const String & name = String() )
Python:
cv.aruco.Dictionary.writeDictionary(fs[, name]) -> None

辞書を FileStorage に書き込む。フォーマットは readDictionary() と同じである。

メンバ変数詳解

◆ bytesList

Mat cv::aruco::Dictionary::bytesList

マーカーコード情報。詳細はクラスの説明を参照

◆ markerSize

int cv::aruco::Dictionary::markerSize

次元あたりのビット数

◆ maxCorrectionBits

int cv::aruco::Dictionary::maxCorrectionBits

訂正可能なビットの最大数


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