类 ORB


  • public class ORB
    extends Feature2D
    实现了 CITE: RRKB11 中描述的 ORB (*oriented BRIEF*) 关键点检测器和描述符提取器的类。该算法在金字塔中使用 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 表示经典金字塔,下一层比上一层有 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
        返回
        自动生成