OpenCV 4.11.0
开源计算机视觉
加载中…
搜索中…
无匹配项

Dictionary 是相同大小的一组唯一的 ArUco 标记。更多…

#include <opencv2/objdetect/aruco_dictionary.hpp>

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 距离。
 
bool identify (const Mat &onlyBits, int &idx, int &rotation, double maxCorrectionRate) const
 给定一个比特矩阵。返回标记是否已识别。
 
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)
 将字节列表转换为比特矩阵。
 
static Mat getByteListFromBits (const Mat &bits)
 将比特矩阵转换为具有 4 个标记旋转的字节列表。
 

公共属性

Mat bytesList
 标记代码信息。有关更多详细信息,请参见类描述
 
int markerSize
 每维的比特数
 
int maxCorrectionBits
 可以纠正的最大比特数
 

详细描述

Dictionary 是相同大小的一组唯一的 ArUco 标记。

bytesList 存储为具有 4 个通道的二维Mat(使用 CV_8UC4 类型),包含标记码字,其中

  • bytesList.rows 是字典大小
  • 每个标记使用nbytes = ceil(markerSize*markerSize/8.)个字节编码
  • 每一行包含标记的 4 个旋转,因此其长度为4*nbytes
  • bytesList[i] 行中的字节顺序://无旋转的字节/旋转 1 的字节/旋转 2 的字节/旋转 3 的字节// 因此bytesList.ptr(i)[k*nbytes + j]是第 i 个标记的第 j 个字节,在其第 k 次旋转中。
    注意
    Python 绑定生成形状为 bytesList dictionary_size x nbytes x 4 的矩阵,但应像 C++ 版本一样索引。Python 示例,对于第 i 个标记的第 j 个字节,在其第 k 次旋转中:aruco_dict.bytesList[id].ravel()[k*nbytes + j]

构造函数和析构函数文档

◆ Dictionary() [1/2]

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

◆ Dictionary() [2/2]

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

基本的 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 )
static
Python
cv.aruco.Dictionary.getBitsFromByteList(byteList, markerSize) -> retval
cv.aruco.Dictionary_getBitsFromByteList(byteList, markerSize) -> 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标志,则会考虑四个可能的标记旋转

◆ identify()

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

给定一个比特矩阵。返回标记是否已识别。

返回字典中标记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]) ->

将字典写入FileStorage,格式与readDictionary() 中相同。

成员数据文档

◆ bytesList

Mat cv::aruco::Dictionary::bytesList

标记代码信息。有关更多详细信息,请参见类描述

◆ markerSize

int cv::aruco::Dictionary::markerSize

每维的比特数

◆ maxCorrectionBits

int cv::aruco::Dictionary::maxCorrectionBits

可以纠正的最大比特数


此类的文档是从以下文件生成的: