Class cv::aruco::Dictionary#

Dictionary is a set of unique ArUco markers of the same size. View details

Collaboration diagram for cv::aruco::Dictionary:

Detailed Description#

Dictionary is a set of unique ArUco markers of the same size.

bytesList storing as 2-dimensions Mat with 4-th channels (CV_8UC4 type was used) and contains the marker codewords where:

  • bytesList.rows is the dictionary size

  • each marker is encoded using nbytes = ceil(markerSize*markerSize/8.) bytes

  • each row contains all 4 rotations of the marker, so its length is 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.

Note

Python bindings generate matrix with shape of bytesList dictionary_size x nbytes x 4, but it should be indexed like C++ version. Python example for j-th byte of i-th marker, in its k-th rotation: aruco_dict.bytesList[id].ravel()[k*nbytes + j]

Constructor & Destructor Documentation#

Dictionary()#

cv::aruco::Dictionary::Dictionary()

Python:

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

Dictionary()#

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>

Basic ArUco dictionary constructor.

Parameters

  • bytesList — bits for all ArUco markers in dictionary see memory layout in the class description

  • _markerSize — ArUco marker size in units

  • maxcorr — maximum number of bits that can be corrected

Member Function Documentation#

generateImageMarker()#

void cv::aruco::Dictionary::generateImageMarker(
int id,
int sidePixels,
OutputArray _img,
int borderBits = 1 )

Python:

cv.aruco.Dictionary.generateImageMarker(id, sidePixels[, _img[, borderBits]]) -> _img

Generate a canonical marker image.

getDistanceToId()#

int cv::aruco::Dictionary::getDistanceToId(
InputArray bits,
int id,
bool allRotations = true )

Python:

cv.aruco.Dictionary.getDistanceToId(bits, id[, allRotations]) -> retval

Returns Hamming distance of the input bits to the specific id.

If allRotations flag is set, the four possible marker rotations are considered

getMarkerBits()#

Mat cv::aruco::Dictionary::getMarkerBits(
int markerId,
int rotationId = 0 )

Python:

cv.aruco.Dictionary.getMarkerBits(markerId[, rotationId]) -> retval

Get ground truth bits float.

identify()#

bool cv::aruco::Dictionary::identify(
const Mat & onlyBits,
int & idx,
int & rotation,
double maxCorrectionRate )

Python:

cv.aruco.Dictionary.identify(onlyBits, maxCorrectionRate) -> retval, idx, rotation
cv.aruco.Dictionary.identify(onlyCellPixelRatio, maxCorrectionRate, validBitIdThreshold) -> retval, idx, rotation

Given a matrix of bits. Returns whether if marker is identified or not.

Returns reference to the marker id in the dictionary (if any) and its rotation.

identify()#

bool cv::aruco::Dictionary::identify(
const Mat & onlyCellPixelRatio,
int & idx,
int & rotation,
double maxCorrectionRate,
float validBitIdThreshold )

Python:

cv.aruco.Dictionary.identify(onlyBits, maxCorrectionRate) -> retval, idx, rotation
cv.aruco.Dictionary.identify(onlyCellPixelRatio, maxCorrectionRate, validBitIdThreshold) -> retval, idx, rotation

Given a matrix of pixel ratio raging from 0 to 1. Returns whether if marker is identified or not.

Returns reference to the marker id in the dictionary (if any) and its rotation.

readDictionary()#

bool cv::aruco::Dictionary::readDictionary(const cv::FileNode & fn)

Python:

cv.aruco.Dictionary.readDictionary(fn) -> retval

Read a new dictionary from FileNode.

Dictionary example in YAML format:

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])

Write a dictionary to FileStorage, format is the same as in readDictionary().

getBitsFromByteList()#

static Mat cv::aruco::Dictionary::getBitsFromByteList(
const Mat & byteList,
int markerSize,
int rotationId = 0 )

Python:

cv.aruco.Dictionary.getBitsFromByteList(byteList, markerSize[, rotationId]) -> retval
cv.aruco.Dictionary_getBitsFromByteList(byteList, markerSize[, rotationId]) -> retval

Transform list of bytes to matrix of bits.

getByteListFromBits()#

static Mat cv::aruco::Dictionary::getByteListFromBits(const Mat & bits)

Python:

cv.aruco.Dictionary.getByteListFromBits(bits) -> retval
cv.aruco.Dictionary_getByteListFromBits(bits) -> retval

Transform matrix of bits to list of bytes with 4 marker rotations.

Member Data Documentation#

bytesList#

Mat cv::aruco::Dictionary::bytesList

marker code information. See class description for more details

markerSize#

int cv::aruco::Dictionary::markerSize

number of bits per dimension

maxCorrectionBits#

int cv::aruco::Dictionary::maxCorrectionBits

maximum number of bits that can be corrected

Source file#

The documentation for this class was generated from the following file: