ORB-SLAM2重要函数总结(1)——特征点、地图点、关键帧

ORB-SLAM2重要函数总结(1)

ORBFeature

  1. IC_Angle通过遍历特征点周围的像素,利用灰度质心法来计算特征点的角度朝向。具体地,它根据像素值和像素坐标的加权和来计算方向角度,使特征点具有旋转不变性。
  2. computeOrientation 函数通过遍历一组特征点的方向角度,并为每个特征点调用 IC_Angle 函数来计算其方向角度,以实现特征点的旋转不变性,从而提高特征匹配的鲁棒性和性能。keypoints 中的每个特征点的 angle 属性被更新。
  3. computeOrbDescriptor用于计算ORB特征点的描述子。它采用了Steer BRIEF算法,遍历描述子的32个字节,每个字节根据预定义的采样模板进行大小比较,将0或1的结果保存到描述子中。最终得到一个256位的ORB描述子。
  4. ORBextractor::DistributeOctTree 函数使用四叉树法对图像金字塔图层中的特征点进行平均分配,将输入的特征点均匀分布到图像的不同区域,并保留每个区域中响应值最大的一个特征点,以实现特征点的均匀分布和响应值最大化,适用于特征点提取的优化和均匀分布需求。
  5. ExtractorNode::DivideNode函数用于将ORB 特征提取器节点分成四个子节点,将当前节点分成四个子节点,并将图像上的特征点分配给这些子节点。函数完成图像区域的划分、特征点归属的划分,从而实现更好的特征点分布和性能。
  6. ORBextractor::ORBextractorORB特征点提取器的构造函数,初始化ORB特征点提取器,设置各种参数和数据结构包括参数、金字塔构建、特征点数量分配、随机采样点的准备等,为后续在图像上执行ORB特征点提取做好了准备工作。
  7. ORBextractor::ComputeKeyPointsOctTree用于在图像金字塔的不同层级上提取特征点,并确保这些特征点在图像中均匀分布。此外,它还计算了每个特征点的方向信息,以便在后续的特征匹配中使用。函数的核心思想是使用图像金字塔和四叉树结构来有效地提取和管理特征点。调用OpenCV在图像块中检测FAST角点,DistributeOctTree函数和computeOrientation函数。

ORBmatcher

  1. ``ORBmatcher::DescriptorDistance`函数用于计算两个ORB特征描述子之间的汉明距离,数值越小表示两个描述子越相似,用于度量两个特征点相似度。通过在两个特征点的ORB描述子之间计算异或然后统计不同位而实现,用来确定最佳匹配。
  2. ORBmatcher::ComputeThreeMaxima从一组直方图中识别出最大的三个峰值,这用于在分析和筛选匹配特征点时保证旋转一致性。
  3. ORBmatcher::SearchForInitialization单目初始化,用于在两个初始帧之间找到特征点匹配,主要是参考帧和当前帧的特征点匹配,包括特征点逐一匹配、正反一致性检查、旋转一致性检查、剔除误匹配等步骤。初始化以便估计初始相机位姿和构建初始地图。
  4. ORBmatcher::SearchByProjecti
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值