类 Dictionary
- java.lang.Object
-
- org.opencv.objdetect.Dictionary
-
public class Dictionary extends java.lang.Object
Dictionary 是一个相同大小的唯一 ArUco 标记的集合,bytesList
存储为具有 4 个通道的二维 Mat(使用了 CV_8UC4 类型),并包含标记码字,其中:- bytesList.rows 是字典大小 - 每个标记使用nbytes = ceil(markerSize*markerSize/8.)
字节编码 - 每行包含标记的全部 4 个旋转,因此其长度为4*nbytes
- bytesList[i] 行中的字节顺序://无旋转的字节/旋转 1 的字节/旋转 2 的字节/旋转 3 的字节//
所以bytesList.ptr(i)[k*nbytes + j]
是第 i 个标记的第 j 个字节,在其第 k 次旋转中。注意:Python 绑定生成形状为 bytesListdictionary_size x nbytes x 4
的矩阵,但应像 C++ 版本一样索引。Python 示例,用于第 i 个标记的第 j 个字节,在其第 k 次旋转中:aruco_dict.bytesList[id].ravel()[k*nbytes + j]
-
-
字段摘要
字段 修饰符和类型 字段 描述 protected long
nativeObj
-
构造函数摘要
构造函数 修饰符 构造函数 描述 Dictionary()
protected
Dictionary(long addr)
Dictionary(Mat bytesList, int _markerSize)
基本的 ArUco 字典构造函数Dictionary(Mat bytesList, int _markerSize, int maxcorr)
基本的 ArUco 字典构造函数
-
方法摘要
所有方法 静态方法 实例方法 具体方法 修饰符和类型 方法 描述 static Dictionary
__fromPtr__(long addr)
protected void
finalize()
void
generateImageMarker(int id, int sidePixels, Mat _img)
生成规范的标记图像void
generateImageMarker(int id, int sidePixels, Mat _img, int borderBits)
生成规范的标记图像Mat
get_bytesList()
int
get_markerSize()
int
get_maxCorrectionBits()
static Mat
getBitsFromByteList(Mat byteList, int markerSize)
将字节列表转换为位矩阵static Mat
getByteListFromBits(Mat bits)
将位矩阵转换为具有 4 个标记旋转的字节列表int
getDistanceToId(Mat bits, int id)
返回输入位到特定 ID 的汉明距离。int
getDistanceToId(Mat bits, int id, boolean allRotations)
返回输入位到特定 ID 的汉明距离。long
getNativeObjAddr()
boolean
identify(Mat onlyBits, int[] idx, int[] rotation, double maxCorrectionRate)
给定一个位矩阵。void
set_bytesList(Mat bytesList)
void
set_markerSize(int markerSize)
void
set_maxCorrectionBits(int maxCorrectionBits)
-
-
-
构造函数详情
-
Dictionary
protected Dictionary(long addr)
-
Dictionary
public Dictionary()
-
Dictionary
public Dictionary(Mat bytesList, int _markerSize, int maxcorr)
基本的 ArUco 字典构造函数- 参数
bytesList
- 字典中所有 ArUco 标记的位,参见类描述中的内存布局_markerSize
- ArUco 标记尺寸(单位)maxcorr
- 可以校正的最大位数
-
Dictionary
public Dictionary(Mat bytesList, int _markerSize)
基本的 ArUco 字典构造函数- 参数
bytesList
- 字典中所有 ArUco 标记的位,参见类描述中的内存布局_markerSize
- ArUco 标记尺寸(单位)
-
-
方法详情
-
getNativeObjAddr
public long getNativeObjAddr()
-
__fromPtr__
public static Dictionary __fromPtr__(long addr)
-
identify
public boolean identify(Mat onlyBits, int[] idx, int[] rotation, double maxCorrectionRate)
给定一个位矩阵。返回标记是否已识别。返回字典中标记 ID(如果有)及其旋转的引用。- 参数
onlyBits
- 自动生成idx
- 自动生成rotation
- 自动生成maxCorrectionRate
- 自动生成- 返回值
- 自动生成
-
getDistanceToId
public int getDistanceToId(Mat bits, int id, boolean allRotations)
返回输入位到特定 ID 的汉明距离。如果设置了allRotations
标志,则会考虑四个可能的标记旋转。- 参数
bits
- 自动生成id
- 自动生成allRotations
- 自动生成- 返回值
- 自动生成
-
getDistanceToId
public int getDistanceToId(Mat bits, int id)
返回输入位到特定 ID 的汉明距离。如果设置了allRotations
标志,则会考虑四个可能的标记旋转。- 参数
bits
- 自动生成id
- 自动生成- 返回值
- 自动生成
-
generateImageMarker
public void generateImageMarker(int id, int sidePixels, Mat _img, int borderBits)
生成规范的标记图像- 参数
id
- 自动生成sidePixels
- 自动生成_img
- 自动生成borderBits
- 自动生成
-
generateImageMarker
public void generateImageMarker(int id, int sidePixels, Mat _img)
生成规范的标记图像- 参数
id
- 自动生成sidePixels
- 自动生成_img
- 自动生成
-
getByteListFromBits
public static Mat getByteListFromBits(Mat bits)
将位矩阵转换为具有 4 个标记旋转的字节列表- 参数
bits
- 自动生成- 返回值
- 自动生成
-
getBitsFromByteList
public static Mat getBitsFromByteList(Mat byteList, int markerSize)
将字节列表转换为位矩阵- 参数
byteList
- 自动生成markerSize
- 自动生成- 返回值
- 自动生成
-
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
- 覆盖
finalize
在类java.lang.Object
中- 抛出
java.lang.Throwable
-
-