ORBSLAM的ORB特征提取
ORBSLAM中的主要使用了ORB特征,也就是FAST特征+BRIEF描述子的组合,具体这两种方法就不详细介绍了,这里主要说一下每个特征对应的描述子在ORBSLAM中的维护方式; 首先需要说明的是每个frame都有自己对应的找到的feature,在进行特征提取前会先初始化一个Extractor,也就是: void Frame::ExtractORB(int flag, const cv::Mat &im) { if(flag==0) (*mpORBextractorLeft)(im,cv::Mat(),mvKeys,mDescriptors); else (*mpORBextractorRight)(im,cv::Mat(),mvKeysRight,mDescriptorsRight); } 第二步:初始化完成后就是提取,这里的入口函数是: // 计算ORB特征,_keypoints中的坐标与scale已经无关 /* _image: 原图 * mvImagePyramid:ComputePyramid() 的结果,不同大小的图片 * allKeypoints:对应mvImagePyramid中每一层图像的特征点,是与金字塔图像坐标对应的,就是在原图像的基础上经过缩放的 * _keypoints:对allKeypoints中每一个点找到对应的描述子后,再进行scale, *