Package org.opencv.objdetect

## Class Dictionary

- java.lang.Object
- - org.opencv.objdetect.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 Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected long` | `nativeObj` |

  - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `` | `Dictionary()` |
    `protected` | `Dictionary​(long addr)` |
    `` | `Dictionary​(Mat bytesList, int _markerSize)` | Basic ArUco dictionary constructor
    `` | `Dictionary​(Mat bytesList, int _markerSize, int maxcorr)` | Basic ArUco dictionary constructor

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static Dictionary` | `__fromPtr__​(long addr)` |
    `protected void` | `finalize()` |
    `void` | `generateImageMarker​(int id, int sidePixels, Mat _img)` | Generate a canonical marker image
    `void` | `generateImageMarker​(int id, int sidePixels, Mat _img, int borderBits)` | Generate a canonical marker image
    `Mat` | `get_bytesList()` |
    `int` | `get_markerSize()` |
    `int` | `get_maxCorrectionBits()` |
    `static Mat` | `getBitsFromByteList​(Mat byteList, int markerSize)` | Transform list of bytes to matrix of bits
    `static Mat` | `getByteListFromBits​(Mat bits)` | Transform matrix of bits to list of bytes with 4 marker rotations
    `int` | `getDistanceToId​(Mat bits, int id)` | Returns Hamming distance of the input bits to the specific id.
    `int` | `getDistanceToId​(Mat bits, int id, boolean allRotations)` | Returns Hamming distance of the input bits to the specific id.
    `long` | `getNativeObjAddr()` |
    `boolean` | `identify​(Mat onlyBits, int[] idx, int[] rotation, double maxCorrectionRate)` | Given a matrix of bits.
    `void` | `set_bytesList​(Mat bytesList)` |
    `void` | `set_markerSize​(int markerSize)` |
    `void` | `set_maxCorrectionBits​(int maxCorrectionBits)` |

    - ### Methods inherited from class java.lang.Object

      `clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 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`