ORB特征点匹配

orbslam2可视化_ORB-SLAM2的Rviz可视化方案 前言ORB-SLAM的地图和定位可视化是通过Rviz进行展示的,而在ORB-SLAM2中,为了不依赖于ROS,ORB-SLAM2的可视化采用了pangolin库。而我的硕士课题有个需求,就是要使ORB-SLAM2的结果和Cartographer的结果同时显示在同一个可视化工具中,而Cartographer是采用Rviz显示的,还定制了专用的Rviz插件。思考再三,决定为ORB-SLAM2重新添加基... 阅读详情

    首先安装opencv以及opencv的features模块

// 来自高翔SLAM十四讲
#include<iostream>
#include<opencv2/core/core.hpp>
#include<opencv2/features2d/features2d.hpp>
#include<opencv2/highgui/highgui.hpp>

using namespace std;
using namespace cv;

int main(){
    Mat img_1 = imread("test.jpg",CV_LOAD_IMAGE_COLOR);
    Mat img_2 = imread("test.jpg",CV_LOAD_IMAGE_COLOR);

    // 初始化
    std::vector<KeyPoint> keypoints_1, keypoints_2;
    Mat descriptors_1, descriptors_2;
    Ptr<ORB> orb = ORB::create(500, 1.2f, 8, 31, 0, 2, ORB::HARRIS_SCORE, 31, 20);  // 汉明距离

    // 第一步:检测FAST角点位置
    orb->detect(img_1,keypoints_1);
    orb->detect(img_2, keypoints_2);

    // 第二步:根据角点位置计算BRIEF描述子
    orb->compute(img_1, keypoints_1, descriptors_1);
    orb->compute(img_2, keypoints_2, descriptors_2);

    // 显示检测出来的特征点
    Mat outimg1;
    drawKeypoints(img_1, keypoints_1, outimg1, Scalar::all(-1), DrawMatchesFlags::DEFAULT);
    imshow("ORB特征点检测", outimg1);

    // 第三步:对两幅图像中的BRIEF描述子进行匹配,使用汉明距离
    vector<DMatch> matches;
    BFMatcher matcher(NORM_HAMMING);       // 汉明距离的暴力匹配
    matcher.match(descriptors_1, descriptors_2, matches);

    // 第四步:对匹配点进行筛选
    double min_dist = 10000, max_dist = 0;

    // 找出所有匹配之间的最小距离和最大距离,即最相似和最不相似的两组点之间的距离
    for(int i=0; i<descriptors_1.rows; i++){
        double dist = matches[i].distance;
        min_dist = min_dist < dist ? min_dist : dist;
        max_dist = max_dist > dist ? max_dist : dist;
    }

    std::cout<<"-- Max dist : "<<max_dist<<std::endl;
    std::cout<<"-- Min dist : "<<min_dist<<std::endl;

    // 当描述子之间的距离大于两倍的最小距离时,认为匹配有误。
    // 有时候最小距离很小,所以还是要设置一个经验值作为下限
    std::vector<DMatch> good_matches;
    for(int i=0; i<descriptors_1.rows; i++){
        if(matches[i].distance <= max(2*min_dist, 30.0)){
            good_matches.push_back(matches[i]);
        }
    }

    // 第5步:绘制匹配结果
    Mat img_match;
    Mat img_goodmatch;
    drawMatches(img_1, keypoints_1, img_2, keypoints_2, matches, img_match);
    drawMatches(img_1, keypoints_1, img_2, keypoints_2, good_matches, img_goodmatch);
    imshow("所有匹配点",img_match);
    imshow("优化后的匹配点",img_goodmatch);
    waitKey(0);


    return 0;
}

 

OpenCV中ORB特征点检测和匹配简单用法 ORB特征点检测和匹配 阅读详情

相关推荐

特征点的检测与匹配(ORB,SIFT,SURFT比较)[opencv-python]

特征点的检测与匹配(ORB,SIFT,SURFT比较)

weixin_43151193的博客 1万+

ros中rviz不显示摄像头视频问题的解决

2、设置image的topic为【/image_raw】3 、之后图像就出来了。

m0_64346597的博客 3802

Opencv下利用SIFT、SURF、ORB三种特征点实现图像匹配

Opencv下利用SIFT、SURF、ORB三种特征点实现图像匹配视频项目中要用到拼接,这里记录一下SIFT、SURF、ORB三种特征点。 本文不做过多的理论解释,只是利用opencv简单实现三种特征点匹配算法的验证(改进的部分暂未上传)。代码下载地址:Opencv下利用SIFT、SURF、ORB三种特征点实现图像匹配 环境: Windows下vs2010,opev2.4.9; 代码relea

2010yhh 3万+

ubuntu18.04系统小觅深度相机跑vins-mono(解决了rviz没有轨迹出现的问题)

这两天刚开始弄imu+vslam,把学习的过程记录一下,以便后续查阅。同时也希望能帮助到大家。仅供参考,如有不对请指正! step1:下载小觅深度相机的官方SDK 可以用我提供的这个链接 cd <sdk> make init make ros make all echo "source ~/MYNT-EYE-D-SDK/wrappers/ros/devel/setup.bash" >> ~/.bashrc source ~/.bashrc 到此SDK就编译好了 要使用相机就得配置相

weixin_44970102的博客 2950

ORB-SLAM策略思考之ORB特征点匹配策略

有关ORB-SLAM中特征匹配的策略

cai_niao_lu的博客 1503

图像特征点提取及匹配的几种方法总结——基于C++和OPENCV实现SIFT、SURF、ORB、FAST

学习特征提取匹配以及图像融合

H19981118的博客 6039

opencv关于特征点检测的版本问题

一、在2.X.X版本featuredetector可以使用如下格式定义特征点检测的方法(用2.4.10版本实验): Ptr detector = FeatureDetector::create(“SIFT”); detector-&amp;gt;detect(image, keypoint); Ptr desc_detector = DescriptorExtractor::create(“SIFT”);...

yaoyaoqiekenaoo的博客 405

深入理解ORB特征点匹配技术

在计算机视觉领域,特征点匹配是图像识别和分析的关键步骤之一。它涉及识别两个或多个图像之间相似的特征点,为后续的图像配准、目标检测与跟踪、三维重建等任务提供基础。特征点匹配的准确性直接影响到整个系统的性能。角点作为图像中的一种重要特征点,因其在二维空间中具有独特的位置和方向信息,被广泛应用于图像识别、三维重建、视觉导航和运动跟踪等领域。角点检测不仅可以减少后续处理的数据量,而且能够提供更鲁棒的特征信息。在机器人视觉中,角点检测是定位和导航的关键,帮助机器人理解其所处环境的结构。

weixin_36178216的博客 1501

特征点匹配——ORB算法介绍

《ORB: an efficient alternative to SIFT or SURF》是Rublee等人在2011年的ICCV上发表的一篇有关于特征点提取和匹配的论文,这篇论文介绍的方法跳出了SIFT和SURF算法的专利框架,同时以极快的运行速度赢得了众多青睐。下面我简单介绍一下ORB算法的流程。ORB算法的主要贡献如下: (1)为FAST算法提取的特征点加上了一个特征点方向; (2)使

lhanchao的博客 4万+

LTspice导入德州仪器SPICE模型的实用指南与常见问题解析

本文详细介绍了如何在LTspice中导入德州仪器的SPICE模型,包括模型文件获取、路径管理、导入步骤及常见问题解析。通过实用指南帮助工程师精确仿真电路性能,提升设计效率,重点涵盖了第三方模型的导入教程和最佳实践。

kk1234的博客 308

手把手教你用C++和NI-VISA写个简易仪器上位机(附QT工程配置)

本文详细介绍了如何使用C++和QT框架结合NI-VISA驱动开发跨平台仪器控制上位机软件。从Ubuntu环境配置、VISA通信核心架构设计到QT界面与业务逻辑解耦,提供了完整的实战指南和代码示例,帮助开发者快速构建专业级仪器控制程序。

weixin_42522374的博客 273

opencv-基于ORB特征点匹配

#include #include #include #include using namespace cv; // 计算图像的SIFT特征及匹配 cv::Mat cacORBFeatureAndCompare(cv::Mat srcImage1, cv::Mat srcImage2) { CV_Assert(srcImage1.data != NULL && srcImage

hb707934728的博客 8564

紫光展锐面试——FPGA/IC设计面试面经案例总结

自我介绍;研究生的主要研究方向是什么?为什么想要应聘数字芯片相关的工作?简单介绍下数字IC设计流程。逻辑综合主要做什么?你有实际做过逻辑综合工作吗?你了解SS corner和FF corner吗?综合时应该使用哪个corner?综合时需要考虑hold吗?为什么?提高时钟频率对setup和hold有什么影响?为什么?hvt、rvt/svt、lvt有什么区别?c40、c50是指什么概念?有什么区别?你对EDA工具有过了解吗?

FPGA/MATLAB学习教程/源码/项目合作开发 1563

opencv 特征点匹配:ORB

特征点匹配的流程: ORB:Oriented FAST and Rotated BRIE ORB特征是将FAST特征点的检测方法与BRIEF特征描述子结合起来,并在它们原来的基础上做了改进与优化: 使用非最大值抑制,在一定区域内仅仅保留响应极大值的角点,避免FAST提取到的角点过于集中。FAST提取到的角点数量过多且不是很稳定,ORB中可以指定需要提取到的角点的数量N,然后对FAS...

Ring__Rain的博客 1735

机器学习实战7-基于机器学习算法预测相亲成功率

大家好,我是微学AI,今天给大家介绍一下机器学习实战7-基于机器学习算法预测相亲成功率,随着社会的发展,大家都忙于事业,对自己的终身大事就耽搁了,相亲是一种传统的寻找伴侣的方式,随着时代的发展,相亲的方式也在不断地改变。在这个过程中,了解相亲双方的信息以及预测相亲是否成功变得越来越重要。本文将介绍如何使用随机森林算法对相亲成功进行预测,通过分析男女双方的房子、车子、长相、家庭条件、父母情况、生活习惯、学历、性格、兴趣等因素,来预测相亲是否成功。

微学AI的博客 3033

2026.5.3:Ubuntu26.04下uv所需的环境变量pyproject.toml

本文档提供了Python开发环境的配置指南。主要包括: 设置环境变量(HF_ENDPOINT、UV_PYTHON_INSTALL_MIRROR等) 创建pyproject.toml配置文件,定义项目元数据(名称、版本等) 指定依赖项(torch系列库)及其安装源(PyTorch官方CUDA 12.8镜像) 配置Python版本要求(>=3.13,<3.14) 设置平台限制(Linux/Windows) 该配置适用于需要PyTorch CUDA 12.8支持的项目开发环境搭建。

拥抱具身智能,昇腾Ascend C 588

ORB-SLAM2代码(四)特征点匹配

orb-slam作为一款优秀的特征点slam方法,其特征点匹配好坏相当重要,直接关系到建图和定位的准确度。 1、特征点提取 orb特征点是对fast角点的改进,通过加入尺度和旋转的属性,使得orb特征点具备了尺度和旋转不变性. 1.1 特征点数目 每一金字塔层选取特征点理论总数目nfeatures,随着金字塔层数越高(分辨率越低),按照等比数列下降. 1.2 fast角点 在提取特征之前,先要获...

陋室逢雨 1万+

使用NXP SBC插件开发FS26软件

FS26作为功能安全可达ASIL D的SBC,在配合NXP MCU的使用中非常广泛,本文介绍基于NXP官网的SBC代码包快速进行FS26软件的开发FS26使用过程中还有不少坑的地方,后面有空可以再介绍相关的功能。

赞的博客 649

特征点检测和特征点匹配(ORB)

本文介绍了特征点检测的一些算法,然后基于OpenCV的ORB,实现了不同尺度和旋转的图像特征点匹配。

dragonylee的博客 4022

【ARM CoreLink 系列 7 -- TZC-400控制器简介】

为了确保内存能够正确识别总线的信号控制位,新增一个TrustZone地址空间控制器(TrustZone Address Space Controller,TZASC)组件来实现对内存地址的安全扩展,将内存区域划分为安全内存区域和非安全内存区域,安全世界可以访问安全内存和非安全内存,而普通世界只能访问非安全内存,如下图所示:图 1-1内存区域的划分是在系统启动时通过配置 TZASC 组件(TZC-400/TZC-380)来实现的。TZC-400由和使能情况;安全访问权限;Base地址;

CodingCos的博客 1633

工程师必收藏,Juniper(Junos)网络设备命令大全

不要直接删除配置 → 使用deactivate配置前先修改大配置用出现风险命令一律用写自动化时一律用格式真正会用 Juniper 的工程师,不是命令多,而是命令用得精。

网络技术联盟站 403

ORB特征点检测和匹配

#include #include #include "opencv2/core/core.hpp" #include "opencv2/features2d/features2d.hpp" #include "opencv2/highgui/highgui.hpp" #include #include #include using namespace cv; using namesp

luotong86的专栏 1764

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ORB-SLAM2删除特征点误匹配:Rotation Histogram

原理上来说很简单,我们知道ORB是具有旋转不变这个性质的,具有旋转不变性的特征点具有更好的鲁棒性。对图像提取一个特征点,我们只能拿到点的像素坐标(x,y),而不能拿到特征点的角度。特征点的角度其实是后面定义用来进行特征匹配的。例如对于ORB我们定义一个特征点的角度就是特征点指向图像像素质心的方向。一般来说对于特征点的匹配,在视觉SLAM中分为直接法(光流法)和间接法(描述子方法)。对于光流法优化两个点的光度误差,可以理解为一样亮的两个点就是同一个点。

weixin_57293158的博客 1026

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

ORB/BRISK/AKAZE特征点提取、特征匹配的性能比较

特征点的提取与特征匹配的概述 特征点提取,输入一幅图片,提取出能代表这幅图片特征的一些点 这些点根据不同提特征的算法,具有一些性质 特征提取通常分为两步: 检测特征点 keypoints 计算描述子 descriptors 特征匹配: 通过计算的描述子,运用一定的度量方式,对描述子进行匹配,输出匹配成功的特征点对 maches ...

一米阳光 1万+
上一篇: 除自身以外数组的乘积
下一篇: 通过两张图片实现2D-2D对极几何位姿估计
rdc01234
博客等级 码龄9年 10粉丝 156原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值