线特征---LSD算法(二)

本文深入介绍了LSD(Line Segment Detector)算法,一种亚像素级精确、线性时间复杂度的直线段检测方法。算法通过计算像素的level-line angle,形成level-line场,分割为方向接近的line support regions,再通过矩形拟合和同性点统计,应用a contrario方法判断直线段。LSD通过梯度计算、阈值抑制、区域生长和NFA计算等步骤,有效地检测图像中的直线段。
摘要由CSDN通过智能技术生成

上一节介绍了一些资源和实验结果,这节主要是介绍LSD算法理论。

 

直线段检测算法---LSDa Line Segment Detector

LSD的核心是像素合并于误差控制。利用合并像素来检测直线段并不是什么新鲜的方法,但是合并像素的方法通常运算量较大。LSD号称是能在线性时间(linear-time)内得到亚像素级准确度的直线段检测算法。LSD虽然号称不需人工设置任何参数,但是实际使用时,可以设置采样率和判断俩像素是否合并的方向差。我们知道,检测图像中的直线其实就是寻找图像中梯度变化较大的像素。LSD的目标在于检测图像中局部的直的轮廓,这也是我们称之为直线分割的原因。轮廓是图像中的某些特殊区域,在这些区域,图像的灰度从黑到白或者从白到黑的剧烈变化。因此,梯度和level-line是两个重要的概念,如下图所示:

算法首先计算每个像素的level-line angle(此文章下面的[2])以构成一个level-line 场。该场被分割为连通的若干个部分,它们方向近似相同并且在容忍度τ内,这样可以得到一系列regions,这些 regions被称为 line support regions(支持域)。如下图所示:

每一个line support region其实就是一组像素,它也是直线段(line segment)的候选。同时,对于这个line support region,我们可以观察它的最小外接矩形。直观上来讲,当一组像素构成的区域,特别细长时,那么这组像素更加可能是直线段。line support region的一个主惯性轴作为矩形的主方向,矩形的大小选择为覆盖整个区域。

矩形中的像素level-line angle与最小外接矩形的主方向的角度差在容忍(toleranceτ内的话,那么这个点被称作"aligned point"(同性点)。通过统计最小外接矩形内的所有像素数n和其内的alinedg points个数k,用来判定这个line support region是否是一个直线段。判定的准则使用的是a contrario approach and the Helmholtz principle

 

LSD算法的具体解释:

输入:灰度图

输出:一系列的直线分割结果。

1.以 s=0.8的尺度对输入图像进行高斯核采样。

2.计算每一个点的梯度值以及梯度方向(level-line orientation),其中gx和gy分别为水平和垂直方向梯度。

3.根据梯度值对所有点进行伪排序(pseudo-ordered),建立状态列表,所有点设置为UNUSED。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值