ORB-SLAM2中MapPoints的描述子的计算

//我们在从金字塔的图像中获取特征点时为每一个特征点计算了描述子
//现在看看如何计算一个空间的地图点的描述子
void MapPoint::ComputeDistinctiveDescriptors()
{
    // Retrieve all observed descriptors
    vector<cv::Mat> vDescriptors;
    //获取到某一个地图点可以被哪些关键帧观测到以及在这些关键帧上与该地图点对应的特征点的编号
    map<KeyFrame*,size_t> observations;

    {
        unique_lock<mutex> lock1(mMutexFeatures);
        if(mbBad)
            return;
       
        observations=mObservations;
    }

    if(observations.empty())
        return;
    //vDescriptors用来存储这些所有与可以观测到该地图点的特征点的描述子
    vDescriptors.reserve(observations.size());

    for(map<KeyFrame*,size_t>::iterator mit=observations.begin(), mend=observations.end(); mit!=mend; mit++)
    {
        //获取可以观测到此地图点的所有关键帧
        KeyFrame* pKF = mit->first;

        //然后获取,在该关键帧下与该地图点对应的特征点的描述子
        //vDescriptors中存储了所有的那些可以观测到该地图点的图像上的与之对应的特征点的描述子。
        if(!pKF->isBad())
            vDescriptors.push_back(pKF->mDescriptors.row(mit->se
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值