Dictionary is a set of unique ArUco markers of the same size.
More...
#include <opencv2/objdetect/aruco_dictionary.hpp>
|
| Dictionary () |
|
| Dictionary (const Mat &bytesList, int _markerSize, int maxcorr=0) |
| Basic ArUco dictionary constructor. More...
|
|
void | generateImageMarker (int id, int sidePixels, OutputArray _img, int borderBits=1) const |
| Generate a canonical marker image. More...
|
|
int | getDistanceToId (InputArray bits, int id, bool allRotations=true) const |
| Returns Hamming distance of the input bits to the specific id. More...
|
|
bool | identify (const Mat &onlyBits, int &idx, int &rotation, double maxCorrectionRate) const |
| Given a matrix of bits. Returns whether if marker is identified or not. More...
|
|
bool | readDictionary (const cv::FileNode &fn) |
| Read a new dictionary from FileNode. More...
|
|
void | writeDictionary (FileStorage &fs, const String &name=String()) |
| Write a dictionary to FileStorage, format is the same as in readDictionary(). More...
|
|
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]
◆ 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> |
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 |
◆ 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 |
Generate a canonical marker image.
◆ 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 |
Transform list of bytes to matrix of bits.
◆ getByteListFromBits()
static Mat cv::aruco::Dictionary::getByteListFromBits |
( |
const Mat & |
bits | ) |
|
|
static |
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.
◆ getDistanceToId()
int cv::aruco::Dictionary::getDistanceToId |
( |
InputArray |
bits, |
|
|
int |
id, |
|
|
bool |
allRotations = true |
|
) |
| const |
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 posible marker rotations are considered
◆ 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 |
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.
◆ 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()
Python: |
---|
| cv.aruco.Dictionary.writeDictionary( | fs[, name] | ) -> | None |
◆ 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
The documentation for this class was generated from the following file: