类 ORB
- java.lang.Object
-
- org.opencv.core.Algorithm
-
- org.opencv.features2d.Feature2D
-
- org.opencv.features2d.ORB
-
public class ORB extends Feature2D
实现 ORB(*定向 BRIEF*)关键点检测器和描述符提取器的类,参见 CITE: RRKB11。该算法在金字塔中使用 FAST 检测稳定的关键点,利用 FAST 或 Harris 响应选择最强的特征,使用一阶矩找到它们的方向,并使用 BRIEF 计算描述符(其中随机点对(或 k 元组)的坐标根据测量的方向进行旋转)。
-
-
字段摘要
字段 修饰符和类型 字段 描述 static intFAST_SCOREstatic intHARRIS_SCORE
-
构造函数摘要
构造函数 修饰符 构造函数 描述 保护ORB(long addr)
-
方法摘要
所有方法 静态方法 实例方法 具体方法 修饰符和类型 方法 描述 static ORB__fromPtr__(long addr)static ORBcreate()ORB 构造函数金字塔,其中每个后续级别比前一个级别减少 4 倍像素,但如此大的比例因子会显著降低特征匹配分数。static ORBcreate(int nfeatures)ORB 构造函数static ORBcreate(int nfeatures, float scaleFactor)ORB 构造函数static ORBcreate(int nfeatures, float scaleFactor, int nlevels)ORB 构造函数static ORBcreate(int nfeatures, float scaleFactor, int nlevels, int edgeThreshold)ORB 构造函数static ORBcreate(int nfeatures, float scaleFactor, int nlevels, int edgeThreshold, int firstLevel)ORB 构造函数static ORBcreate(int nfeatures, float scaleFactor, int nlevels, int edgeThreshold, int firstLevel, int WTA_K)ORB 构造函数static ORBcreate(int nfeatures, float scaleFactor, int nlevels, int edgeThreshold, int firstLevel, int WTA_K, int scoreType)ORB 构造函数static ORBcreate(int nfeatures, float scaleFactor, int nlevels, int edgeThreshold, int firstLevel, int WTA_K, int scoreType, int patchSize)ORB 构造函数static ORBcreate(int nfeatures, float scaleFactor, int nlevels, int edgeThreshold, int firstLevel, int WTA_K, int scoreType, int patchSize, int fastThreshold)ORB 构造函数protected voidfinalize()java.lang.StringgetDefaultName()返回算法字符串标识符。intgetEdgeThreshold()intgetFastThreshold()intgetFirstLevel()intgetMaxFeatures()intgetNLevels()intgetPatchSize()doublegetScaleFactor()intgetScoreType()intgetWTA_K()voidsetEdgeThreshold(int edgeThreshold)voidsetFastThreshold(int fastThreshold)voidsetFirstLevel(int firstLevel)voidsetMaxFeatures(int maxFeatures)voidsetNLevels(int nlevels)voidsetPatchSize(int patchSize)voidsetScaleFactor(double scaleFactor)voidsetScoreType(int scoreType)voidsetWTA_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 意味着经典金字塔,其中每个后续级别比前一个级别减少 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(每 bin 2 位)。当 WTA_K=4 时,我们取 4 个随机点来计算每个 bin(这也将占用 2 位,可能的值为 0、1、2 或 3)。scoreType- 默认 HARRIS_SCORE 意味着使用 Harris 算法对特征进行排名(分数写入 KeyPoint::score 并用于保留最佳 nfeatures 特征);FAST_SCORE 是参数的替代值,它产生的关键点稳定性稍差,但计算速度稍快。patchSize- 定向 BRIEF 描述符使用的补丁大小。当然,在较小的金字塔层上,特征覆盖的感知图像区域会更大。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 意味着经典金字塔,其中每个后续级别比前一个级别减少 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(每 bin 2 位)。当 WTA_K=4 时,我们取 4 个随机点来计算每个 bin(这也将占用 2 位,可能的值为 0、1、2 或 3)。scoreType- 默认 HARRIS_SCORE 意味着使用 Harris 算法对特征进行排名(分数写入 KeyPoint::score 并用于保留最佳 nfeatures 特征);FAST_SCORE 是参数的替代值,它产生的关键点稳定性稍差,但计算速度稍快。patchSize- 定向 BRIEF 描述符使用的补丁大小。当然,在较小的金字塔层上,特征覆盖的感知图像区域会更大。- 返回
- 自动生成
-
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 意味着经典金字塔,其中每个后续级别比前一个级别减少 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(每 bin 2 位)。当 WTA_K=4 时,我们取 4 个随机点来计算每个 bin(这也将占用 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 意味着经典金字塔,其中每个后续级别比前一个级别减少 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(每 bin 2 位)。当 WTA_K=4 时,我们取 4 个随机点来计算每个 bin(这也将占用 2 位,可能的值为 0、1、2 或 3)。- 返回
- 自动生成
-
create
public static ORB create(int nfeatures, float scaleFactor, int nlevels, int edgeThreshold, int firstLevel)
ORB 构造函数- 参数
nfeatures- 要保留的最大特征数。scaleFactor- 金字塔抽取比,大于 1。scaleFactor==2 意味着经典金字塔,其中每个后续级别比前一个级别减少 4 倍像素,但如此大的比例因子会显著降低特征匹配分数。另一方面,过于接近 1 的比例因子意味着要覆盖某个尺度范围,您将需要更多的金字塔级别,因此速度会受到影响。nlevels- 金字塔级别数。最小级别将具有等于 input_image_linear_size/pow(scaleFactor, nlevels - firstLevel) 的线性大小。edgeThreshold- 这是不检测特征的边界大小。它应大致与 patchSize 参数匹配。firstLevel- 放置源图像的金字塔级别。以前的层将填充放大后的源图像。- 返回
- 自动生成
-
create
public static ORB create(int nfeatures, float scaleFactor, int nlevels, int edgeThreshold)
ORB 构造函数- 参数
nfeatures- 要保留的最大特征数。scaleFactor- 金字塔抽取比,大于 1。scaleFactor==2 意味着经典金字塔,其中每个后续级别比前一个级别减少 4 倍像素,但如此大的比例因子会显著降低特征匹配分数。另一方面,过于接近 1 的比例因子意味着要覆盖某个尺度范围,您将需要更多的金字塔级别,因此速度会受到影响。nlevels- 金字塔级别数。最小级别将具有等于 input_image_linear_size/pow(scaleFactor, nlevels - firstLevel) 的线性大小。edgeThreshold- 这是不检测特征的边界大小。它应大致与 patchSize 参数匹配。- 返回
- 自动生成
-
create
public static ORB create(int nfeatures, float scaleFactor, int nlevels)
ORB 构造函数- 参数
nfeatures- 要保留的最大特征数。scaleFactor- 金字塔抽取比,大于 1。scaleFactor==2 意味着经典金字塔,其中每个后续级别比前一个级别减少 4 倍像素,但如此大的比例因子会显著降低特征匹配分数。另一方面,过于接近 1 的比例因子意味着要覆盖某个尺度范围,您将需要更多的金字塔级别,因此速度会受到影响。nlevels- 金字塔级别数。最小级别将具有等于 input_image_linear_size/pow(scaleFactor, nlevels - firstLevel) 的线性大小。- 返回
- 自动生成
-
create
public static ORB create(int nfeatures, float scaleFactor)
ORB 构造函数- 参数
nfeatures- 要保留的最大特征数。scaleFactor- 金字塔抽取比,大于 1。scaleFactor==2 意味着经典金字塔,其中每个后续级别比前一个级别减少 4 倍像素,但如此大的比例因子会显著降低特征匹配分数。另一方面,过于接近 1 的比例因子意味着要覆盖某个尺度范围,您将需要更多的金字塔级别,因此速度会受到影响。- 返回
- 自动生成
-
create
public static ORB create(int nfeatures)
ORB 构造函数- 参数
nfeatures- 要保留的最大特征数。- 返回
- 自动生成
-
create
public static ORB create()
ORB 构造函数金字塔,其中每个后续级别比前一个级别减少 4 倍像素,但如此大的比例因子会显著降低特征匹配分数。另一方面,过于接近 1 的比例因子意味着要覆盖某个尺度范围,您将需要更多的金字塔级别,因此速度会受到影响。- 返回
- 自动生成
-
setMaxFeatures
public void setMaxFeatures(int maxFeatures)
-
getMaxFeatures
public int getMaxFeatures()
-
setScaleFactor
public void setScaleFactor(double scaleFactor)
-
getScaleFactor
public double getScaleFactor()
-
setNLevels
public void setNLevels(int nlevels)
-
getNLevels
public int getNLevels()
-
setEdgeThreshold
public void setEdgeThreshold(int edgeThreshold)
-
getEdgeThreshold
public int getEdgeThreshold()
-
setFirstLevel
public void setFirstLevel(int firstLevel)
-
getFirstLevel
public int getFirstLevel()
-
setWTA_K
public void setWTA_K(int wta_k)
-
getWTA_K
public int getWTA_K()
-
setScoreType
public void setScoreType(int scoreType)
-
getScoreType
public int getScoreType()
-
setPatchSize
public void setPatchSize(int patchSize)
-
getPatchSize
public int getPatchSize()
-
setFastThreshold
public void setFastThreshold(int fastThreshold)
-
getFastThreshold
public int getFastThreshold()
-
getDefaultName
public java.lang.String getDefaultName()
描述复制自类:Algorithm返回算法字符串标识符。当对象保存到文件或字符串时,此字符串用作顶级 xml/yml 节点标签。- 重写
getDefaultName在类Feature2D中- 返回
- 自动生成
-
-