ORB 类
- java.lang.Object
-
- org.opencv.core.Algorithm
-
- org.opencv.features2d.Feature2D
-
- org.opencv.features2d.ORB
-
public class ORB extends Feature2D
实现 ORB (*oriented BRIEF*) 关键点检测器和描述符提取器的类,如 CITE: RRKB11 所述。该算法使用金字塔中的 FAST 来检测稳定的关键点,使用 FAST 或 Harris 响应选择最强的特征,使用一阶矩找到它们的方位,并使用 BRIEF 计算描述符(其中随机点对(或 k 元组)的坐标根据测量的方向旋转)。
-
-
字段摘要
字段 修饰符和类型 字段 描述 static int
FAST_SCORE
static int
HARRIS_SCORE
-
构造函数摘要
构造函数 修饰符 构造函数 描述 protected
ORB(long addr)
-
方法摘要
所有方法 静态方法 实例方法 具体方法 修饰符和类型 方法 描述 static ORB
__fromPtr__(long addr)
static ORB
create()
ORB 构造函数金字塔,其中每个下一层的像素数量是上一层的 1/4,但是这么大的比例因子会显著降低特征匹配分数。static ORB
create(int nfeatures)
ORB 构造函数static ORB
create(int nfeatures, float scaleFactor)
ORB 构造函数static ORB
create(int nfeatures, float scaleFactor, int nlevels)
ORB 构造函数static ORB
create(int nfeatures, float scaleFactor, int nlevels, int edgeThreshold)
ORB 构造函数static ORB
create(int nfeatures, float scaleFactor, int nlevels, int edgeThreshold, int firstLevel)
ORB 构造函数static ORB
create(int nfeatures, float scaleFactor, int nlevels, int edgeThreshold, int firstLevel, int WTA_K)
ORB 构造函数static ORB
create(int nfeatures, float scaleFactor, int nlevels, int edgeThreshold, int firstLevel, int WTA_K, int scoreType)
ORB 构造函数static ORB
create(int nfeatures, float scaleFactor, int nlevels, int edgeThreshold, int firstLevel, int WTA_K, int scoreType, int patchSize)
ORB 构造函数static ORB
create(int nfeatures, float scaleFactor, int nlevels, int edgeThreshold, int firstLevel, int WTA_K, int scoreType, int patchSize, int fastThreshold)
ORB 构造函数protected void
finalize()
java.lang.String
getDefaultName()
返回算法字符串标识符。int
getEdgeThreshold()
int
getFastThreshold()
int
getFirstLevel()
int
getMaxFeatures()
int
getNLevels()
int
getPatchSize()
double
getScaleFactor()
int
getScoreType()
int
getWTA_K()
void
setEdgeThreshold(int edgeThreshold)
void
setFastThreshold(int fastThreshold)
void
setFirstLevel(int firstLevel)
void
setMaxFeatures(int maxFeatures)
void
setNLevels(int nlevels)
void
setPatchSize(int patchSize)
void
setScaleFactor(double scaleFactor)
void
setScoreType(int scoreType)
void
setWTA_K(int wta_k)
-
继承自类 org.opencv.features2d.Feature2D 的方法
compute, compute, defaultNorm, descriptorSize, descriptorType, detect, detect, detect, detect, detectAndCompute, detectAndCompute, empty, read, write
-
继承自类 org.opencv.core.Algorithm 的方法
clear, getNativeObjAddr, save
-
-
-
-
方法详情
-
__fromPtr__
public static ORB __fromPtr__(long addr)
-
create
public static ORB create(int nfeatures, float scaleFactor, int nlevels, int edgeThreshold, int firstLevel, int WTA_K, int scoreType, int patchSize, int fastThreshold)
ORB 构造函数- 参数
nfeatures
- 要保留的最大特征数量。scaleFactor
- 金字塔缩减比例,大于 1。scaleFactor==2 表示经典金字塔,其中下一层的像素数量是上一层的 1/4,但是这么大的比例因子会显著降低特征匹配分数。另一方面,太接近 1 的比例因子意味着要覆盖一定的比例范围,需要更多的金字塔层,因此速度会受到影响。nlevels
- 金字塔的层数。最小的层将具有线性大小等于 input_image_linear_size/pow(scaleFactor, nlevels - firstLevel)。edgeThreshold
- 这是未检测到特征的边框大小。它应该大致匹配 patchSize 参数。firstLevel
- 将源图像放入的金字塔级别。之前的层填充了上采样的源图像。WTA_K
- 用于生成定向BRIEF描述符每个元素的点数。默认值2表示BRIEF方法中取一对随机点并比较其亮度,从而得到0/1响应。其他可能的值为3和4。例如,3表示我们取3个随机点(当然,这些点的坐标是随机的,但它们是由预定义的种子生成的,因此BRIEF描述符的每个元素都是由像素矩形确定性地计算出来的),找到亮度最大的点并输出获胜者的索引(0、1或2)。此输出将占用2位,因此需要汉明距离的特殊变体,表示为NORM_HAMMING2(每箱2位)。当WTA_K=4时,我们取4个随机点来计算每个箱(这也将占用2位,可能的值为0、1、2或3)。scoreType
- 默认值HARRIS_SCORE表示使用Harris算法对特征进行排序(分数写入KeyPoint::score,并用于保留最佳的nfeatures特征);FAST_SCORE是该参数的替代值,它生成的特征点略微不稳定,但计算速度稍快。patchSize
- 定向BRIEF描述符使用的patch大小。当然,在较小的金字塔层上,特征所覆盖的感知图像区域将更大。fastThreshold
- FAST阈值- 返回值
- 自动生成
-
create
public static ORB create(int nfeatures, float scaleFactor, int nlevels, int edgeThreshold, int firstLevel, int WTA_K, int scoreType, int patchSize)
ORB 构造函数- 参数
nfeatures
- 要保留的最大特征数量。scaleFactor
- 金字塔缩减比例,大于 1。scaleFactor==2 表示经典金字塔,其中下一层的像素数量是上一层的 1/4,但是这么大的比例因子会显著降低特征匹配分数。另一方面,太接近 1 的比例因子意味着要覆盖一定的比例范围,需要更多的金字塔层,因此速度会受到影响。nlevels
- 金字塔的层数。最小的层将具有线性大小等于 input_image_linear_size/pow(scaleFactor, nlevels - firstLevel)。edgeThreshold
- 这是未检测到特征的边框大小。它应该大致匹配 patchSize 参数。firstLevel
- 将源图像放入的金字塔级别。之前的层填充了上采样的源图像。WTA_K
- 用于生成定向BRIEF描述符每个元素的点数。默认值2表示BRIEF方法中取一对随机点并比较其亮度,从而得到0/1响应。其他可能的值为3和4。例如,3表示我们取3个随机点(当然,这些点的坐标是随机的,但它们是由预定义的种子生成的,因此BRIEF描述符的每个元素都是由像素矩形确定性地计算出来的),找到亮度最大的点并输出获胜者的索引(0、1或2)。此输出将占用2位,因此需要汉明距离的特殊变体,表示为NORM_HAMMING2(每箱2位)。当WTA_K=4时,我们取4个随机点来计算每个箱(这也将占用2位,可能的值为0、1、2或3)。scoreType
- 默认值HARRIS_SCORE表示使用Harris算法对特征进行排序(分数写入KeyPoint::score,并用于保留最佳的nfeatures特征);FAST_SCORE是该参数的替代值,它生成的特征点略微不稳定,但计算速度稍快。patchSize
- 定向BRIEF描述符使用的patch大小。当然,在较小的金字塔层上,特征所覆盖的感知图像区域将更大。- 返回值
- 自动生成
-
create
public static ORB create(int nfeatures, float scaleFactor, int nlevels, int edgeThreshold, int firstLevel, int WTA_K, int scoreType)
ORB 构造函数- 参数
nfeatures
- 要保留的最大特征数量。scaleFactor
- 金字塔缩减比例,大于 1。scaleFactor==2 表示经典金字塔,其中下一层的像素数量是上一层的 1/4,但是这么大的比例因子会显著降低特征匹配分数。另一方面,太接近 1 的比例因子意味着要覆盖一定的比例范围,需要更多的金字塔层,因此速度会受到影响。nlevels
- 金字塔的层数。最小的层将具有线性大小等于 input_image_linear_size/pow(scaleFactor, nlevels - firstLevel)。edgeThreshold
- 这是未检测到特征的边框大小。它应该大致匹配 patchSize 参数。firstLevel
- 将源图像放入的金字塔级别。之前的层填充了上采样的源图像。WTA_K
- 用于生成定向BRIEF描述符每个元素的点数。默认值2表示BRIEF方法中取一对随机点并比较其亮度,从而得到0/1响应。其他可能的值为3和4。例如,3表示我们取3个随机点(当然,这些点的坐标是随机的,但它们是由预定义的种子生成的,因此BRIEF描述符的每个元素都是由像素矩形确定性地计算出来的),找到亮度最大的点并输出获胜者的索引(0、1或2)。此输出将占用2位,因此需要汉明距离的特殊变体,表示为NORM_HAMMING2(每箱2位)。当WTA_K=4时,我们取4个随机点来计算每个箱(这也将占用2位,可能的值为0、1、2或3)。scoreType
- 默认值HARRIS_SCORE表示使用Harris算法对特征进行排序(分数写入KeyPoint::score,并用于保留最佳的nfeatures特征);FAST_SCORE是该参数的替代值,它生成的特征点略微不稳定,但计算速度稍快。金字塔层上,特征所覆盖的感知图像区域将更大。- 返回值
- 自动生成
-
create
public static ORB create(int nfeatures, float scaleFactor, int nlevels, int edgeThreshold, int firstLevel, int WTA_K)
ORB 构造函数- 参数
nfeatures
- 要保留的最大特征数量。scaleFactor
- 金字塔缩减比例,大于 1。scaleFactor==2 表示经典金字塔,其中下一层的像素数量是上一层的 1/4,但是这么大的比例因子会显著降低特征匹配分数。另一方面,太接近 1 的比例因子意味着要覆盖一定的比例范围,需要更多的金字塔层,因此速度会受到影响。nlevels
- 金字塔的层数。最小的层将具有线性大小等于 input_image_linear_size/pow(scaleFactor, nlevels - firstLevel)。edgeThreshold
- 这是未检测到特征的边框大小。它应该大致匹配 patchSize 参数。firstLevel
- 将源图像放入的金字塔级别。之前的层填充了上采样的源图像。WTA_K
- 用于生成定向BRIEF描述符每个元素的点数。默认值2表示BRIEF方法中取一对随机点并比较其亮度,从而得到0/1响应。其他可能的值为3和4。例如,3表示我们取3个随机点(当然,这些点的坐标是随机的,但它们是由预定义的种子生成的,因此BRIEF描述符的每个元素都是由像素矩形确定性地计算出来的),找到亮度最大的点并输出获胜者的索引(0、1或2)。此输出将占用2位,因此需要汉明距离的特殊变体,表示为NORM_HAMMING2(每箱2位)。当WTA_K=4时,我们取4个随机点来计算每个箱(这也将占用2位,可能的值为0、1、2或3)。(分数写入KeyPoint::score,并用于保留最佳的nfeatures特征);FAST_SCORE是该参数的替代值,它生成的特征点略微不稳定,但计算速度稍快。金字塔层上,特征所覆盖的感知图像区域将更大。- 返回值
- 自动生成
-
create
public static ORB create(int nfeatures, float scaleFactor, int nlevels, int edgeThreshold, int firstLevel)
ORB 构造函数- 参数
nfeatures
- 要保留的最大特征数量。scaleFactor
- 金字塔缩减比例,大于 1。scaleFactor==2 表示经典金字塔,其中下一层的像素数量是上一层的 1/4,但是这么大的比例因子会显著降低特征匹配分数。另一方面,太接近 1 的比例因子意味着要覆盖一定的比例范围,需要更多的金字塔层,因此速度会受到影响。nlevels
- 金字塔的层数。最小的层将具有线性大小等于 input_image_linear_size/pow(scaleFactor, nlevels - firstLevel)。edgeThreshold
- 这是未检测到特征的边框大小。它应该大致匹配 patchSize 参数。firstLevel
- 将源图像放置到的金字塔层级。之前的层级用上采样的源图像填充。默认值2表示BRIEF方法中取一对随机点并比较其亮度,从而得到0/1响应。其他可能的值为3和4。例如,3表示我们取3个随机点(当然,这些点的坐标是随机的,但它们是由预定义的种子生成的,因此BRIEF描述符的每个元素都是由像素矩形确定性地计算出来的),找到亮度最大的点并输出获胜者的索引(0、1或2)。此输出将占用2位,因此需要汉明距离的特殊变体,表示为NORM_HAMMING2(每箱2位)。当WTA_K=4时,我们取4个随机点来计算每个箱(这也将占用2位,可能的值为0、1、2或3)。(分数写入KeyPoint::score,并用于保留最佳的nfeatures特征);FAST_SCORE是该参数的替代值,它生成的特征点略微不稳定,但计算速度稍快。金字塔层上,特征所覆盖的感知图像区域将更大。- 返回值
- 自动生成
-
create
public static ORB create(int nfeatures, float scaleFactor, int nlevels, int edgeThreshold)
ORB 构造函数- 参数
nfeatures
- 要保留的最大特征数量。scaleFactor
- 金字塔缩减比例,大于 1。scaleFactor==2 表示经典金字塔,其中下一层的像素数量是上一层的 1/4,但是这么大的比例因子会显著降低特征匹配分数。另一方面,太接近 1 的比例因子意味着要覆盖一定的比例范围,需要更多的金字塔层,因此速度会受到影响。nlevels
- 金字塔的层数。最小的层将具有线性大小等于 input_image_linear_size/pow(scaleFactor, nlevels - firstLevel)。edgeThreshold
- 这是特征未检测到的边界大小。它应该大致匹配patchSize参数。用上采样的源图像填充。默认值2表示BRIEF方法中取一对随机点并比较其亮度,从而得到0/1响应。其他可能的值为3和4。例如,3表示我们取3个随机点(当然,这些点的坐标是随机的,但它们是由预定义的种子生成的,因此BRIEF描述符的每个元素都是由像素矩形确定性地计算出来的),找到亮度最大的点并输出获胜者的索引(0、1或2)。此输出将占用2位,因此需要汉明距离的特殊变体,表示为NORM_HAMMING2(每箱2位)。当WTA_K=4时,我们取4个随机点来计算每个箱(这也将占用2位,可能的值为0、1、2或3)。(分数写入KeyPoint::score,并用于保留最佳的nfeatures特征);FAST_SCORE是该参数的替代值,它生成的特征点略微不稳定,但计算速度稍快。金字塔层上,特征所覆盖的感知图像区域将更大。- 返回值
- 自动生成
-
create
public static ORB create(int nfeatures, float scaleFactor, int nlevels)
ORB 构造函数- 参数
nfeatures
- 要保留的最大特征数量。scaleFactor
- 金字塔缩减比例,大于 1。scaleFactor==2 表示经典金字塔,其中下一层的像素数量是上一层的 1/4,但是这么大的比例因子会显著降低特征匹配分数。另一方面,太接近 1 的比例因子意味着要覆盖一定的比例范围,需要更多的金字塔层,因此速度会受到影响。nlevels
- 金字塔层数。最小层级的线性大小等于input_image_linear_size/pow(scaleFactor, nlevels - firstLevel)。大致匹配patchSize参数。用上采样的源图像填充。默认值2表示BRIEF方法中取一对随机点并比较其亮度,从而得到0/1响应。其他可能的值为3和4。例如,3表示我们取3个随机点(当然,这些点的坐标是随机的,但它们是由预定义的种子生成的,因此BRIEF描述符的每个元素都是由像素矩形确定性地计算出来的),找到亮度最大的点并输出获胜者的索引(0、1或2)。此输出将占用2位,因此需要汉明距离的特殊变体,表示为NORM_HAMMING2(每箱2位)。当WTA_K=4时,我们取4个随机点来计算每个箱(这也将占用2位,可能的值为0、1、2或3)。(分数写入KeyPoint::score,并用于保留最佳的nfeatures特征);FAST_SCORE是该参数的替代值,它生成的特征点略微不稳定,但计算速度稍快。金字塔层上,特征所覆盖的感知图像区域将更大。- 返回值
- 自动生成
-
create
public static ORB create(int nfeatures, float scaleFactor)
ORB 构造函数- 参数
nfeatures
- 要保留的最大特征数量。scaleFactor
- 金字塔缩减比例,大于 1。scaleFactor==2 表示经典金字塔,其中每一层像素数量比上一层少 4 倍,但如此大的比例因子会显著降低特征匹配得分。另一方面,比例因子太接近 1 意味着为了覆盖一定的尺度范围,需要更多的金字塔层级,从而降低速度。input_image_linear_size/pow(scaleFactor, nlevels - firstLevel)。大致匹配 patchSize 参数。使用上采样的源图像。默认值为 2,表示 BRIEF,我们取一对随机点并比较它们的亮度,因此得到 0/1 响应。其他可能的值为 3 和 4。例如,3 表示我们取 3 个随机点(当然,这些点的坐标是随机的,但它们是由预定义的种子生成的,因此 BRIEF 描述符的每个元素都是从像素矩形确定性地计算出来的),找到最大亮度点并输出获胜者的索引(0、1 或 2)。此输出将占用 2 位,因此需要汉明距离的特殊变体,表示为 NORM_HAMMING2(每 bin 2 位)。当 WTA_K=4 时,我们取 4 个随机点来计算每个 bin(这也将占用 2 位,可能的值为 0、1、2 或 3)。(分数写入 KeyPoint::score 并用于保留最佳 nfeatures 特征);FAST_SCORE 是参数的替代值,它产生的关键点略微不稳定,但计算速度稍快。金字塔层,特征覆盖的感知图像区域将更大。- 返回值
- 自动生成
-
create
public static ORB create(int nfeatures)
ORB 构造函数- 参数
nfeatures
- 要保留的最大特征数量。金字塔,其中每一层像素数量比上一层少 4 倍,但如此大的比例因子会显著降低特征匹配得分。另一方面,比例因子太接近 1 意味着为了覆盖一定的尺度范围,需要更多的金字塔层级,从而降低速度。input_image_linear_size/pow(scaleFactor, nlevels - firstLevel)。大致匹配 patchSize 参数。使用上采样的源图像。默认值为 2,表示 BRIEF,我们取一对随机点并比较它们的亮度,因此得到 0/1 响应。其他可能的值为 3 和 4。例如,3 表示我们取 3 个随机点(当然,这些点的坐标是随机的,但它们是由预定义的种子生成的,因此 BRIEF 描述符的每个元素都是从像素矩形确定性地计算出来的),找到最大亮度点并输出获胜者的索引(0、1 或 2)。此输出将占用 2 位,因此需要汉明距离的特殊变体,表示为 NORM_HAMMING2(每 bin 2 位)。当 WTA_K=4 时,我们取 4 个随机点来计算每个 bin(这也将占用 2 位,可能的值为 0、1、2 或 3)。(分数写入 KeyPoint::score 并用于保留最佳 nfeatures 特征);FAST_SCORE 是参数的替代值,它产生的关键点略微不稳定,但计算速度稍快。金字塔层,特征覆盖的感知图像区域将更大。- 返回值
- 自动生成
-
create
public static ORB create()
ORB 构造函数的金字塔,其中每一层像素数量比上一层少 4 倍,但如此大的比例因子会显著降低特征匹配得分。另一方面,比例因子太接近 1 意味着为了覆盖一定的尺度范围,需要更多的金字塔层级,从而降低速度。input_image_linear_size/pow(scaleFactor, nlevels - firstLevel)。大致匹配 patchSize 参数。使用上采样的源图像。默认值为 2,表示 BRIEF,我们取一对随机点并比较它们的亮度,因此得到 0/1 响应。其他可能的值为 3 和 4。例如,3 表示我们取 3 个随机点(当然,这些点的坐标是随机的,但它们是由预定义的种子生成的,因此 BRIEF 描述符的每个元素都是从像素矩形确定性地计算出来的),找到最大亮度点并输出获胜者的索引(0、1 或 2)。此输出将占用 2 位,因此需要汉明距离的特殊变体,表示为 NORM_HAMMING2(每 bin 2 位)。当 WTA_K=4 时,我们取 4 个随机点来计算每个 bin(这也将占用 2 位,可能的值为 0、1、2 或 3)。(分数写入 KeyPoint::score 并用于保留最佳 nfeatures 特征);FAST_SCORE 是参数的替代值,它产生的关键点略微不稳定,但计算速度稍快。金字塔层,特征覆盖的感知图像区域将更大。- 返回值
- 自动生成
-
设置最大特征数
public void setMaxFeatures(int maxFeatures)
-
getMaxFeatures
public int getMaxFeatures()
-
设置比例因子
public void setScaleFactor(double scaleFactor)
-
getScaleFactor
public double getScaleFactor()
-
设置层数
public void setNLevels(int nlevels)
-
getNLevels
public int getNLevels()
-
设置边缘阈值
public void setEdgeThreshold(int edgeThreshold)
-
getEdgeThreshold
public int getEdgeThreshold()
-
设置第一层
public void setFirstLevel(int firstLevel)
-
getFirstLevel
public int getFirstLevel()
-
设置WTA_K
public void setWTA_K(int wta_k)
-
getWTA_K
public int getWTA_K()
-
设置评分类型
public void setScoreType(int scoreType)
-
getScoreType
public int getScoreType()
-
设置Patch大小
public void setPatchSize(int patchSize)
-
getPatchSize
public int getPatchSize()
-
设置快速阈值
public void setFastThreshold(int fastThreshold)
-
getFastThreshold
public int getFastThreshold()
-
getDefaultName
public java.lang.String getDefaultName()
从类复制的描述:Algorithm
返回算法字符串标识符。将对象保存到文件或字符串时,此字符串用作顶级 xml/yml 节点标签。- 重写
getDefaultName
在类Feature2D
中- 返回值
- 自动生成
-
-