ORBSLAM源码理论分析1—特征点提取

1.读取待处理图片并灰度化

在这里插入图片描述  在这里插入图片描述
       原图            灰度化图像(第0层)

2.利用图像金字塔将灰度图尺度化为若干层

  程序中为8层金字塔,这里只展示前五层,原灰度图为第0层,则
在这里插入图片描述    在这里插入图片描述
      第1层              第2层
在这里插入图片描述     在这里插入图片描述
     第3层              第4层
  具体实现过程,以从第0层到第1层为例讲解。先根据第1层的尺度因数确定该层图像的size。然后将第0层图像缩放到这个size大小,缩放方式采用的是双线性差值法。然后扩充该缩放图像的边缘,程序中将图像四周各扩充了16个像素点,扩充方式为对称法(以图像扩充前最边缘像素为轴,对称扩充)。
  程序中的图像金字塔为8层,对每层都进行如是操作,最后将8层金字塔图像矩阵存储到一个vector<cv::Mat>容器mvMaskPyramid中。

3.特征点提取

  程序中将图像尺度化为8层图像金字塔,首先确定“期望提取到的特征点总数量(nfeatures)”是多少,然后以一定的规则确定“各层期望提取到的特征点数量(mnFeaturesPerLevel [level])”是多少,Level取值范围为0-7,最后对每层分别进行特征点提取。以第0层为例(nDesiredFeatures = mnFeaturesPerLevel [0]),讲解此过程。
  将第0层图像分割成若干图像网格区域,对每个网格区域分别进行特征点提取。那么问题来了,若干个区域是多少区域?怎么划分呢?下面给出划分依据。
  首先,你自己要确定“你期望每个网格区域可以提取出多少(nfeaturesCell)个特征点”,然后根据公式nCells = nDesiredFeatures / nfeaturesCell,确定出网格区域数量。然后根据图像的行列之比,确定出nCells个网格区域分成了多少行(levelRows)、多少列(levelCols)

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值