Dictionary is a set of unique ArUco markers of the same size. More...
#include <aruco_dictionary.hpp>
Public Member Functions | |
| CV_WRAP | Dictionary () |
| CV_WRAP | Dictionary (const Mat &bytesList, int _markerSize, int maxcorr=0) |
| Basic ArUco dictionary constructor. | |
| CV_WRAP bool | readDictionary (const cv::FileNode &fn) |
| Read a new dictionary from FileNode. | |
| CV_WRAP void | writeDictionary (FileStorage &fs, const String &name=String()) |
| Write a dictionary to FileStorage, format is the same as in readDictionary(). | |
| CV_WRAP bool | identify (const Mat &onlyBits, CV_OUT int &idx, CV_OUT int &rotation, double maxCorrectionRate) const |
| Given a matrix of bits. Returns whether if marker is identified or not. | |
| CV_WRAP int | getDistanceToId (InputArray bits, int id, bool allRotations=true) const |
| Returns Hamming distance of the input bits to the specific id. | |
| CV_WRAP void | generateImageMarker (int id, int sidePixels, OutputArray _img, int borderBits=1) const |
| Generate a canonical marker image. | |
Static Public Member Functions | |
| static CV_WRAP Mat | getByteListFromBits (const Mat &bits) |
| Transform matrix of bits to list of bytes with 4 marker rotations. | |
| static CV_WRAP Mat | getBitsFromByteList (const Mat &byteList, int markerSize) |
| Transform list of bytes to matrix of bits. | |
Public Attributes | |
| CV_PROP_RW Mat | bytesList |
| marker code information. See class description for more details | |
| CV_PROP_RW int | markerSize |
| number of bits per dimension | |
| CV_PROP_RW int | maxCorrectionBits |
| maximum number of bits that can be corrected | |
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:
nbytes = ceil(markerSize*markerSize/8.) bytes4*nbytes//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. 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] | CV_WRAP cv::aruco::Dictionary::Dictionary | ( | ) |
| CV_WRAP cv::aruco::Dictionary::Dictionary | ( | const Mat & | bytesList, |
| int | _markerSize, | ||
| int | maxcorr = 0 |
||
| ) |
Basic ArUco dictionary constructor.
| 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 |
| CV_WRAP void cv::aruco::Dictionary::generateImageMarker | ( | int | id, |
| int | sidePixels, | ||
| OutputArray | _img, | ||
| int | borderBits = 1 |
||
| ) | const |
Generate a canonical marker image.
|
static |
Transform list of bytes to matrix of bits.
Transform matrix of bits to list of bytes with 4 marker rotations.
| CV_WRAP int cv::aruco::Dictionary::getDistanceToId | ( | InputArray | bits, |
| int | id, | ||
| bool | allRotations = true |
||
| ) | const |
Returns Hamming distance of the input bits to the specific id.
If allRotations flag is set, the four posible marker rotations are considered
| CV_WRAP bool cv::aruco::Dictionary::identify | ( | const Mat & | onlyBits, |
| CV_OUT int & | idx, | ||
| CV_OUT int & | rotation, | ||
| double | maxCorrectionRate | ||
| ) | const |
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.
| CV_WRAP bool cv::aruco::Dictionary::readDictionary | ( | const cv::FileNode & | fn | ) |
Read a new dictionary from FileNode.
Dictionary example in YAML format:
nmarkers: 35
markersize: 6
maxCorrectionBits: 5
marker_0: "101011111011111001001001101100000000"
...
marker_34: "011111010000111011111110110101100101"
| CV_WRAP void cv::aruco::Dictionary::writeDictionary | ( | FileStorage & | fs, |
| const String & | name = String() |
||
| ) |
Write a dictionary to FileStorage, format is the same as in readDictionary().
| CV_PROP_RW Mat cv::aruco::Dictionary::bytesList |
marker code information. See class description for more details
| CV_PROP_RW int cv::aruco::Dictionary::markerSize |
number of bits per dimension
| CV_PROP_RW int cv::aruco::Dictionary::maxCorrectionBits |
maximum number of bits that can be corrected