orb-slam2特征点提取代码
时间: 2023-09-12 21:05:54 浏览: 120
基于LK光流法代替ORB-SLAM2中的特征点提取匹配法来跟踪关键点源码+项目说明.zip
5星 · 资源好评率100%
ORB-SLAM2是一种基于特征点的视觉SLAM系统,它采用ORB特征点作为其特征描述符,下面是ORB-SLAM2特征点提取的核心代码:
```c++
// Extract ORB features from image
void ORBextractor::operator()(cv::Mat image, std::vector<cv::KeyPoint>& keypoints, cv::Mat& descriptors)
{
// Scale the image
cv::Mat image_scaled;
float scale = 1.0f / mvScaleFactors[mvScaleFactors.size()-1];
cv::resize(image, image_scaled, cv::Size(), scale, scale, cv::INTER_LINEAR);
// Compute the ORB features
(*mpORBextractor)(image_scaled, cv::Mat(), keypoints, descriptors);
// Scale keypoint coordinates
if(scale!=1.0f)
{
for(auto& kp : keypoints)
{
kp.pt.x *= scale;
kp.pt.y *= scale;
}
}
}
```
在这个代码中,首先对输入的图像进行缩放,然后调用OpenCV中的ORB特征点提取器对缩放后的图像进行特征点提取,最后再根据缩放因子对提取出的特征点的坐标进行还原。其中,`mvScaleFactors`是一个存储了不同尺度因子的向量,`mpORBextractor`是一个指向ORB提取器的指针。
阅读全文