ORB特征提取分为两步:
①FAST角点提取,找出图片中的角点、计算特征点的主方向为后续BRIEF描述子增加了旋转不变特性。
②BRIEF特征点描述。
OpenCV3中ORB特征检测主要分为五步:
–读取图像
–初始化
①检测Oriented FAST角点位置
②根据焦点位置计算BRIEF描述子
③使用Hamming距离对两幅图像中的描述子进行匹配
④匹配点对筛选
⑤绘制匹配结果
下面贴上代码详解
代码是《SLAM十四讲》中的,博主正在学习中,所以自己加上了注释,非常详细的~(大部分是自己查的,一小部分是借鉴别的博主的)
#include<iostream>
#include<opencv2/core/core.hpp>
#include<opencv2/features2d/features2d.hpp>
#include<opencv2/highgui/highgui.hpp>
//core.hpp该头文件是支持pencv2的主要头文件,core是opencv的主要头文件,包括数据结构,矩阵运算,数据变换,内存管理,文本和数学等功能
//highgui.hpp包括图形界面和视频图像处理的头文件
using namespace std;//namespace标准空间
using namespace cv;
int main(int argc,char**argv ) //argc是命令行总的参数个数 ,用来统计运行程序时送给命令行的参数个数
{
if (argc !=3 )//判断运行该程序时,是否满足以下启动命令
{
cout<< "usage:feature_extraction image1 iamge2 "<<endl;
return 1;
}
//---读取图像
Mat img_1 = imread( argv[1], CV_LOAD_IMAGE_COLOR ); //MAT为opencv中最主要的数据存储格式,该语句是以彩色通道读取图片的意思
Mat img_1 = imread( argv[2], CV_LOAD_IMAGE_COLOR )

本文详细介绍了使用OpenCV3进行ORB特征检测与匹配的过程,包括FAST角点提取和BRIEF描述子计算。通过五个步骤:读取图像、初始化、Oriented FAST角点检测、BRIEF描述子计算以及匹配和筛选,配合代码详解,帮助读者理解ORB特征检测的实际应用。
代码详解&spm=1001.2101.3001.5002&articleId=107570279&d=1&t=3&u=6c8bfff79e46455bb828cd75c0565c62)
1028

被折叠的 条评论
为什么被折叠?



