ORB-SLAM3代码详解(二)ORB特征提取2.0-12个核心函数概述---【src】-【ORBextractor.cc】

按照ORBextractor.cc程序中各个函数的出现顺序,依次列出12个函数:


一、IC_Angle函数((对应视觉SLAM十四讲,第7讲7.1.2节))
二、bit_pattern_31_函数—二进制采样点对库
三、ORBextractor 类的构造函数—初始化:金字塔-特征点数量-尺寸因子
四、computeOrientation 函数-计算特征点方向
五、DivideNode 函数-图像区域划分
六、 compareNodes 函数
七、DistributeOctTree函数- 优化特征点分布
八、ComputeKeyPointsOctTree函数- 特征点提取
九、 ComputeKeyPointsOld 函数
十、 ComputeDescriptors 函数
十一、operator() 函数
十二、 ComputePyramid 函数


下面是根据 ORBextractor.cc 的 12 个主要函数作用绘制的流程图结构描述。这个流程图将展示 ORB特征提取 的完整流程,包括金字塔生成、特征点提取、方向计算和描述符生成。
这里插入图片描述](https://i-blog.csdnimg.cn/direct/5c5ab72960e644d48f096cad20bae1ee.png)

流程图描述

  1. 流程起点
    输入:原始图像

  2. 金字塔生成阶段

    • 调用 ComputePyramid 函数
      生成图像金字塔,为不同尺度的特征点提取做准备。
  3. 特征点提取阶段
    两种方法选择

    • ComputeKeyPointsOctTree(默认方法,使用八叉树):
      • 调用 DistributeOctTree 函数
        利用八叉树分割图像区域,分布特征点。
      • 调用 DivideNode 和 compareNodes 函数
        对图像区域进一步划分和排序,确保特征点均匀分布。
    • ComputeKeyPointsOld(备用方法,网格划分):
      传统方法提取特征点,不使用八叉树。
  4. 特征点方向计算阶段

    • 调用 computeOrientation 函数
      遍历所有提取到的特征点,计算每个特征点的方向角度。

    • 调用 IC_Angle 函数
      具体实现方向角度计算,确保旋转不变性。

  5. 描述符计算阶段

    • 调用 ComputeDescriptors 函数
      为每个特征点计算 ORB 描述符。
      • 内部调用 bit_pattern_31 函数
        定义描述符采样点位置,实现二进制描述符生成。
  6. 特征点与描述符输出阶段

    • 调用 operator() 函数
      综合调用上述各个功能函数,执行完整的 ORB 特征提取流程:
      • 生成金字塔
      • 提取特征点(八叉树或传统方法)
      • 计算方向
      • 计算描述符
      • 输出特征点和描述符
  7. 流程终点
    输出:特征点坐标 + 描述符集合

总结:

  1. 流程起点:从原始图像输入开始。
  2. 金字塔生成:通过 ComputePyramid 构建尺度空间。
  3. 特征点提取:
    默认使用 八叉树方法:调用 ComputeKeyPointsOctTree,内部通过 DistributeOctTree、DivideNode 和 compareNodes 实现区域划分和均匀分布。
    备用方法是 网格划分法:调用 ComputeKeyPointsOld。
  4. 方向计算:computeOrientation 负责计算特征点的方向,IC_Angle 提供具体实现。
  5. 描述符生成:通过 ComputeDescriptors 和 bit_pattern_31 定义采样点并生成二进制描述符。
  6. 总调度函数:operator() 统一调用上述各个核心函数,完成 ORB 特征提取流程。
  7. 流程终点:输出特征点坐标及对应的描述符。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值