Class Dictionary

java.lang.Object
org.opencv.objdetect.Dictionary

public class Dictionary extends 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 Details

    • nativeObj

      protected final long nativeObj
  • Constructor Details

    • 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 Details

    • 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 Throwable
      Overrides:
      finalize in class Object
      Throws:
      Throwable