Class Dictionary


  • public class Dictionary
    extends java.lang.Object
    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]
    • Field Detail

      • nativeObj

        protected final long nativeObj
    • Constructor Detail

      • Dictionary

        protected Dictionary​(long addr)
      • Dictionary

        public Dictionary()
      • Dictionary

        public Dictionary​(Mat bytesList,
                          int _markerSize,
                          int maxcorr)
        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
      • Dictionary

        public Dictionary​(Mat bytesList,
                          int _markerSize)
        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
    • Method Detail

      • getNativeObjAddr

        public long getNativeObjAddr()
      • __fromPtr__

        public static Dictionary __fromPtr__​(long addr)
      • identify

        public boolean identify​(Mat onlyBits,
                                int[] idx,
                                int[] rotation,
                                double maxCorrectionRate)
        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.
        Parameters:
        onlyBits - automatically generated
        idx - automatically generated
        rotation - automatically generated
        maxCorrectionRate - automatically generated
        Returns:
        automatically generated
      • getDistanceToId

        public int getDistanceToId​(Mat bits,
                                   int id,
                                   boolean allRotations)
        Returns Hamming distance of the input bits to the specific id. If allRotations flag is set, the four posible marker rotations are considered
        Parameters:
        bits - automatically generated
        id - automatically generated
        allRotations - automatically generated
        Returns:
        automatically generated
      • getDistanceToId

        public int getDistanceToId​(Mat bits,
                                   int id)
        Returns Hamming distance of the input bits to the specific id. If allRotations flag is set, the four posible marker rotations are considered
        Parameters:
        bits - automatically generated
        id - automatically generated
        Returns:
        automatically generated
      • generateImageMarker

        public void generateImageMarker​(int id,
                                        int sidePixels,
                                        Mat _img,
                                        int borderBits)
        Generate a canonical marker image
        Parameters:
        id - automatically generated
        sidePixels - automatically generated
        _img - automatically generated
        borderBits - automatically generated
      • generateImageMarker

        public void generateImageMarker​(int id,
                                        int sidePixels,
                                        Mat _img)
        Generate a canonical marker image
        Parameters:
        id - automatically generated
        sidePixels - automatically generated
        _img - automatically generated
      • getByteListFromBits

        public static Mat getByteListFromBits​(Mat bits)
        Transform matrix of bits to list of bytes with 4 marker rotations
        Parameters:
        bits - automatically generated
        Returns:
        automatically generated
      • getBitsFromByteList

        public static Mat getBitsFromByteList​(Mat byteList,
                                              int markerSize)
        Transform list of bytes to matrix of bits
        Parameters:
        byteList - automatically generated
        markerSize - automatically generated
        Returns:
        automatically generated
      • get_bytesList

        public Mat get_bytesList()
      • set_bytesList

        public void set_bytesList​(Mat bytesList)
      • get_markerSize

        public int get_markerSize()
      • set_markerSize

        public void set_markerSize​(int markerSize)
      • get_maxCorrectionBits

        public int get_maxCorrectionBits()
      • set_maxCorrectionBits

        public void set_maxCorrectionBits​(int maxCorrectionBits)
      • finalize

        protected void finalize()
                         throws java.lang.Throwable
        Overrides:
        finalize in class java.lang.Object
        Throws:
        java.lang.Throwable