LSD算法与LBD描述子的关系
目录
一、LSD算法
二、LBD描述子
三、二者关系
一、LSD算法
LSD 算法是 2012 年由 Von 等人提出的,该算法的优势是可以自行控制误检的线段
数量同时该算法不需要设置相关的提取参数。LSD 算法是通过计算图像的梯度值以及
梯度的方向,将图像通过梯度场的方式展现出来(其实就是利用每个像素的梯度来判断线的位置)。LSD 首先对图像进行预处理即使用降采样和高斯滤波算法对图像进行降噪,然后计算像素的梯度方向和梯度值,如下图所示,最后将那些方向信息近似的像素点合并起来,形成图中三种颜色区域也叫作线段支持域。
当确定了大概的区域后,对其进行检验,对每一条线段的支持域做一个最小外接矩形包裹住区域内的所有像素点,然后设立一个阈值,通过判断矩形内部的像素点的梯度方向与矩形的主方向误差的大小来判断该像素点是否为内点,若求得的误差在所选定的阈值范围内,则认定该像素点为内点,当内点的比例达到一定数量值时就认为该线段支持域为一条线段。
二、LBD描述子
图像处理学中,线特征的匹配相较于前文点特征的匹配较难,原因主要包括以下几条:
一、线段的端点无法被有效的识别出;
二、线段的提取过程中容易产生断裂现象;
三、场景中纹理较弱。
LBD 的优势在于可以更好的描述线条的局部外观,同时具备更好的匹配性能,且计算成本更低。 线段的支持域 LSR(Line Support Region),是在线段处建立的一个矩形。其中 LSR由一条条平行的被称为 LSR 子区域的条带组成,如下图所示,其中gf 、lf 分别表示全局高斯函数和局部高斯函数。
其中每个条带Bj的特征向量BDj 可以由相邻条带的梯度计算得到,所有的特征向量经过组合就形成了 LBD 描述子:
对相邻三个条带Bj、Bj-1、Bj+1的每一行的局部梯度进行两两求和。第 k 行的求和公式:
一个条带用一个BD表示,每个BD的计算需要依赖条带描述矩阵BDM,BDj由BDMj矩阵的均值向量和标准方差得到 。下面这就是一个条带描述矩阵,每列代表一个像素,也就是这个条带有n个像素,每个像素都会进行四次投影计算得到每列的四个值。
也就是说,一个LBD描述子描述的是这一坨条带,每个条带用一个条带描述子BD表示,而每个BD包括两部分,分别是条带对应的BDM的均值向量和标准方差。最终结合所有的条带得到 LBD 的描述子为:
三、二者关系
简单的说,LSD提取到的直线如果需要后续的匹配等操作,必不可少的就是描述方法,LBD就是一种用来描述直线的描述子。所以,LBD描述子是用来辅助线特征来进行匹配的,如果不需要匹配,可以不进行LBD描述子计算。
LSD算法与LBD描述子的关系相关推荐
- SLAM--PL-SLAM中基于线特征的初始化方法(LSD算法,LBD描述子,计算R和t)
SLAM中基于线特征的初始化方法 线特征的初始化 直线段检测算法---LSD:a Line Segment Detector 描述子---LBD:Line detection and descript ...
- 线特征LSD提取、LBD描述子匹配实现过程源码
使用opencv实现线特征LSD提取.LBD描述子匹配实现: 具体逻辑如下: 1.设置读图的路径 2. 加载图片 3. 创建mask掩代码 4.初始化参数 5.检测LSD线段 6. 计算尺度第一塔的描 ...
- lsd 特征点匹配代码_线特征LSD and 描述子LBD---LBD算法(二)
上一节主要是介绍LSD算法理论,这节主要是介绍LBD算法. 1.尺度空间中提取线段 为了克服在线检测碎片问题和提高大尺度变化的性能,我们的检测框架采用由对原始图像进行搞死下采样( with a set ...
- lsd 特征点匹配代码_线特征LSD and 描述子LBD(一)(示例代码)
最近在看有关特征提取的线特征,暑期就看了相关的论文:<基于点线综合特征的双目视觉SLAM方法_谢晓佳>,最近呢,把里面有关线特征提取LSD和描述子LBD的代码跑了一遍,记录如下: [1]L ...
- BRIEF描述子生成算法
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 一.介绍 我们知道SIFT算法通常通过对每个关键点生成128个特征 ...
- SIFT算法特征描述子构建---关键点定位原理及代码
0.引言 sift针对局部特征进行特征提取,在尺度空间寻找极值点,提取位置,尺度,旋转不变量,生成特征描述子. 总共分四个步骤: 尺度金字塔生成 关键点/极值点提取 生成梯度直方图 特征描述子构建 s ...
- 【视觉算法】SHOT特征描述子
回顾一下上一篇文章学习的物体识别流程,首先计算模型点云特征,并将特征保存:然后计算场景点云特征,并将特征保存:在此基础上,进行特征匹配:每一对特征点,进行霍夫投票,投票峰值对应的那些点对,即为正确的特 ...
- PCL:点云特征描述子3D_object_recognition_(descriptors)
PCL官网:https://pointclouds.org/ 翻译自该网站:http://robotica.unileon.es/index.php/PCL/OpenNI_tutorial_4:_3D ...
- 3D点云描述子超全综述:传统方式+深度学习方式
作者丨Tom Hardy@知乎 来源丨https://zhuanlan.zhihu.com/p/395187135 编辑丨3D视觉工坊 摘要 廉价3D数据采集设备的引入有助于3D点云的广泛应用和普及, ...
- 《数据结构与算法 Python语言描述》 读书笔记
已经发布博客 <数据结构与算法 Python语言描述> 读书笔记 第二章 抽象数据类型和Python类 2.1 抽象数据类型abstract data type:ADT 2.1.1 使用编 ...
最新文章
- NBIOT-NPSS/NSS/NPBCH的资源位置
- 365个机器学习概念,“耐撕”的AI日历限量预售 | 新年礼物嗷~
- 负载均衡探测器lbd
- HashMap和Hashtable的区别总结
- Leetcode-121. 买卖股票的最佳时机
- 一道笔试题(vue,react)
- 重构碎片化知识_知识碎片化时代,如何妙用思维导图,提高你的学习效率(含福利)...
- php+ok,php fscokopen实现数据异步调用代码
- left join 和 inner join
- 清华90后博士后26岁已在《科学》发文6篇
- 码码的土狼:架构的原则、范式及治理
- 【Spark】Spark 3.0 支持 event logs 滚动
- Nginx从入门到掌握【(第3节(共3节)】
- 通风技术交底书范文_通风与空调工程风管安装安全技术交底
- installanywhere's LAX Properties
- redis简介与常用数据类型介绍
- xml文件查看器_万能文件查看器,一个软件打开电脑所有文件
- 学霸辞掉百万年薪只为专心“玩”纸,却推动了航天、医学等领域进步
- 微信小程序弹框种类汇总
- 替换空格——python