ORB 类


  • public class ORB
    extends Feature2D
    实现 ORB (*oriented BRIEF*) 关键点检测器和描述符提取器的类,如 CITE: RRKB11 所述。该算法使用金字塔中的 FAST 来检测稳定的关键点,使用 FAST 或 Harris 响应选择最强的特征,使用一阶矩找到它们的方位,并使用 BRIEF 计算描述符(其中随机点对(或 k 元组)的坐标根据测量的方向旋转)。
    • 字段详情

      • HARRIS_SCORE

        public static final int HARRIS_SCORE
        另请参见
        常量字段值
      • FAST_SCORE

        public static final int FAST_SCORE
        另请参见
        常量字段值
    • 构造函数详情

      • ORB

        protected ORB​(long addr)
    • 方法详情

      • __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
        返回值
        自动生成
      • finalize

        protected void finalize()
                         throws java.lang.Throwable
        重写
        finalize 在类 Feature2D
        抛出
        java.lang.Throwable