Frame类

关键函数:双目计算匹配的方法
void Frame::ComputeStereoMatches()

步骤一:
建立特征点搜索范围对应表,一个特征点在一个带状区域内搜索匹配特征点
// 匹配搜索的时候,不仅仅是在一条横线上搜索,而是在一条横向搜索带上搜索,简而言之,原本每个特征点的纵坐标为1,这里把特征点体积放大,纵坐标占好几行
// 例如左目图像某个特征点的纵坐标为20,那么在右侧图像上搜索时是在纵坐标为18到22这条带上搜索,搜索带宽度为正负2,搜索带的宽度和特征点所在金字塔层数有关,尺度越大其位置不确定性越高,所以其搜索半径越大
// 简单来说,如果纵坐标是20,特征点在图像第20行,那么认为18 19 20 21 22行都有这个特征点
// vRowIndices[18]、vRowIndices[19]、vRowIndices[20]、vRowIndices[21]、vRowIndices[22]都有这个特征点编号
对左目相机每个特征点,通过描述子在右目带状搜索区域找到匹配点

步骤二:
,通过SAD做滑动窗口匹配
获得的是像素级的修正量bestincR

步骤三:做抛物线拟合找谷底得到亚像素匹配deltaR
为何需要进行亚像素定位?

数字图像通常是被离散化成像素形式;

每个像素对应一个整数坐标位置;

整数坐标位置对于很多应用然而并不精确,比如跟踪、相机标定、图像配准、图像拼接以及三维重构;

为达到有些应用的精确性,需要精确到浮点坐标位置;

所以会涉及到亚像素定位问题。亚像素定位就是计算特征所在图像中的真实位置,而真实位置有时候并不在像素所在整数坐标位置上,而是在像素的内部。

利用抛物线插值得到了亚像素级的修正量deltaR

步骤四:
利用一次描述子匹配,两次修正之后的特征点匹配,通过视差计算深度。

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值