类 ORB
- java.lang.Object
-
- org.opencv.core.Algorithm
-
- org.opencv.features2d.Feature2D
-
- org.opencv.features2d.ORB
-
public class ORB extends Feature2D
实现了 CITE: RRKB11 中描述的 ORB (*oriented BRIEF*) 关键点检测器和描述符提取器的类。该算法在金字塔中使用 FAST 来检测稳定的关键点,使用 FAST 或 Harris 响应来选择最强的特征,使用一阶矩来查找其方向,并使用 BRIEF 计算描述符(其中随机点对(或 k-元组)的坐标根据测量到的方向进行旋转)。
-
-
字段摘要
字段 修饰符和类型 字段 描述 static intFAST_SCOREstatic intHARRIS_SCORE
-
构造函数摘要
构造函数 修饰符 构造函数 描述 保护ORB(long addr)
-
方法摘要
所有方法 静态方法 实例方法 具体方法 修饰符和类型 方法 描述 静态 ORB__fromPtr__(long addr)静态 ORBcreate()ORB 构造函数金字塔,其中下一层比上一层有 4 倍少的像素,但如此大的比例因子会严重降低特征匹配分数。静态 ORBcreate(int nfeatures)ORB 构造函数静态 ORBcreate(int nfeatures, float scaleFactor)ORB 构造函数静态 ORBcreate(int nfeatures, float scaleFactor, int nlevels)ORB 构造函数静态 ORBcreate(int nfeatures, float scaleFactor, int nlevels, int edgeThreshold)ORB 构造函数静态 ORBcreate(int nfeatures, float scaleFactor, int nlevels, int edgeThreshold, int firstLevel)ORB 构造函数静态 ORBcreate(int nfeatures, float scaleFactor, int nlevels, int edgeThreshold, int firstLevel, int WTA_K)ORB 构造函数静态 ORBcreate(int nfeatures, float scaleFactor, int nlevels, int edgeThreshold, int firstLevel, int WTA_K, int scoreType)ORB 构造函数静态 ORBcreate(int nfeatures, float scaleFactor, int nlevels, int edgeThreshold, int firstLevel, int WTA_K, int scoreType, int patchSize)ORB 构造函数静态 ORBcreate(int nfeatures, float scaleFactor, int nlevels, int edgeThreshold, int firstLevel, int WTA_K, int scoreType, int patchSize, int fastThreshold)ORB 构造函数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)-
从类继承的方法
Feature2Dcompute, 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)。(分数写入 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 表示经典金字塔,下一层比上一层有 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(每 bin 2 位)。当 WTA_K=4 时,我们取 4 个随机点来计算每个 bin(这将占用 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 表示经典金字塔,下一层比上一层有 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(每 bin 2 位)。当 WTA_K=4 时,我们取 4 个随机点来计算每个 bin(这将占用 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 表示经典金字塔,下一层比上一层有 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(每 bin 2 位)。当 WTA_K=4 时,我们取 4 个随机点来计算每个 bin(这将占用 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 是该参数的替代值,产生的关键点稳定性稍差,但计算速度稍快。金字塔层特征覆盖的感知图像区域会更大。- 返回
- 自动生成
-
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- 返回
- 自动生成
-
-