特征点的检测(一):ORB特征点检测
程序员文章站
2022-06-11 11:18:53
...
特征点的检测(一):ORB特征点检测
前言
ORB 特征点是在 FAST 特征点和 BRIEF 特征描述子的基础上添加了尺度和方向的描述,首先讲解ORB特征点原理,然后用代码实现特征点提取
ORB特征点
摘自论文:(自己敲实在太费时费力啦)
[1]徐宽. 融合IMU信息的双目视觉SLAM研究[D].哈尔滨工业大学,2018.
1、FAST特征点
2、BREIF特征描述子
3、ORB特征
代码
win10+VS2015+OpenCV3.3.0(opencv自带函数实现)
#include"stdafx.h"
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
//读图
Mat img = imread("E:/images/1.jpg");
Mat img_gray = img;
Mat img_output;
//转为灰度图
cvtColor(img_gray, img_gray, CV_RGB2GRAY);
//提取特征点
vector<KeyPoint> keypoints;
Ptr<FeatureDetector> detector = ORB::create();
detector->detect(img_gray, keypoints);
//计算描述子
Mat descriptors;
Ptr<DescriptorExtractor> descriptor = ORB::create();
descriptor->compute(img_gray, keypoints, descriptors);
//画出特征点
drawKeypoints(img, keypoints, img_output, Scalar::all(-1), DrawMatchesFlags::DEFAULT);
//显示
imshow("opencv提取ORB特征点", img_output);
waitKey(0);
return 0;
}
上一篇: 如何使用PHP中的正则表达式
推荐阅读