前言
继之前学习特征提取之后,终于要开始SLAM正经线程的学习了
因为感觉做不完毕设了,所以后期会看的快一些,几篇文章将以随笔形式展开,主要记录学习过程中的一些心得体会
随笔
构造帧
从输入的图片及时间戳构造Frame,完成提取特征点及计算描述子等操作,已经在我的系列视频讲的很清楚啦,链接放在这里供大家临幸嘿嘿:
ORB-SLAM2【Part1:Demo展示及主函数框架梳理】李哈哈的ORB-SLAM2特征提取详解
描述子是个矩阵是怎么回事
描述子是在该函数中提取的:
/**
* @brief 用仿函数(重载括号运算符)方法来计算图像特征点!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
*
* @param[in] _image 输入原始图的图像
* @param[in] _mask 掩膜mask
* @param[in & out] _keypoints 存储特征点关键点的向量
* @param[in & out] _descriptors 存储特征点描述子的矩阵
*/
void ORBextractor::operator()(InputArray _image, InputArray _mask, vector<KeyPoint> &_keypoints,
OutputArray _descriptors)
这是构造帧时调用的仿函数
其中的_keypoints
是存储该帧特征点的向量,是一个保存KeyPoint
的向量,这里的KeyPoint
是关键点的类,好像是OpenCV定义的吧
而_descriptors
就是保存描述子的矩阵,对其的构造操作在函数内:
_descriptors.create(nkeypoints, //矩阵的行数,对应为特征点的总个数
32, //矩阵的列数,对应为使用32*8=256位描述子
CV_8U); //矩阵元素的格式
由此可