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 sizebytesList
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 usingnbytes = ceil(markerSize*markerSize/8.)
bytes - each row contains all 4 rotations of the marker, so its length is4*nbytes
- the byte order in the bytesList[i] row://bytes without rotation/bytes with rotation 1/bytes with rotation 2/bytes with rotation 3//
SobytesList.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 bytesListdictionary_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 constructorDictionary(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 imagevoid
generateImageMarker(int id, int sidePixels, Mat _img, int borderBits)
Generate a canonical marker imageMat
get_bytesList()
int
get_markerSize()
int
get_maxCorrectionBits()
static Mat
getBitsFromByteList(Mat byteList, int markerSize)
Transform list of bytes to matrix of bitsstatic Mat
getByteListFromBits(Mat bits)
Transform matrix of bits to list of bytes with 4 marker rotationsint
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)
-
-
-
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 unitsmaxcorr
- 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 generatedidx
- automatically generatedrotation
- automatically generatedmaxCorrectionRate
- 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. IfallRotations
flag is set, the four posible marker rotations are considered- Parameters:
bits
- automatically generatedid
- automatically generatedallRotations
- automatically generated- Returns:
- automatically generated
-
getDistanceToId
public int getDistanceToId(Mat bits, int id)
Returns Hamming distance of the input bits to the specific id. IfallRotations
flag is set, the four posible marker rotations are considered- Parameters:
bits
- automatically generatedid
- 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 generatedsidePixels
- automatically generated_img
- automatically generatedborderBits
- automatically generated
-
generateImageMarker
public void generateImageMarker(int id, int sidePixels, Mat _img)
Generate a canonical marker image- Parameters:
id
- automatically generatedsidePixels
- 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 generatedmarkerSize
- 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 classjava.lang.Object
- Throws:
java.lang.Throwable
-
-