CV | 直线检测的方法

文章目录

    • 直线检测的方法
      • a. 霍夫直线检测
      • b. LSD直线检测
        • ——划重点
      • 优缺点对比

直线检测的方法

a. 霍夫直线检测

摘自:LSD直线检测和霍夫线变换的学习建议
在霍夫变换后,(ρ,θ)就是一对霍夫空间的变量表示。直角坐标系中一个点(x0,
y0)可以代表360°的直线的其中一个点,我们把这个点旋转360°的直线都用极坐标(ρ,θ)表达出来,就是一个在霍夫空间(ρ,θ)的正弦曲线(大家想象一下,一个点的360°的直线的(ρ,θ)都不一样,不一样的(ρ,θ)组成了正弦曲线上的点)。同样,直线上的其他点(Xn,Yn)也会构成一组关于ρ,θ的正弦曲线,这样势必存在一个关于ρ,θ相交(即垂直点(r,θ))。

于是乎,
一条直线能够通过在极坐标下寻找交于一点的曲线数量来检测,如果越多曲线交于一点,就意味着这个交点表示的直线由更多的点组成。我们可以通过设置直线上点的阈值来定义多少条曲线交于一点我们才认为检测到了一条直线。

标准霍夫线变换能检测直线,但是不能够检测直线两端,概率霍夫线变换可以检测到直线的两端。如今霍夫变换可以检测圆及其大部分的形状。

b. LSD直线检测

摘自:
LSD:一种直线检测算法简介
(这是我目前看过的最详细的关于LSD的介绍,基本上时从原作论文翻译过来的。可参考。)

CV | 直线检测的方法_第1张图片
CV | 直线检测的方法_第2张图片

——划重点

  1. 图像缩放到原来的80%。目的是减弱甚至消除很多图像中出现的锯齿效应。缩小是通过高斯降采样来进行的,首先用高斯核进行滤波从而避免锯齿效应,接着进行降采样。(具体参见博客)
  2. 梯度计算。这个梯度计算和梯度幅值计算的方法很通用。

CV | 直线检测的方法_第3张图片
3. 梯度排序。方法供选择。
4. 梯度阈值。梯度阈值的设计准则可供参考,很多论文里似乎都是这么用的。
5. 区域增长。以梯度作为区域增长中的生长准则,当然,如果有更好的特征,也可以替换。

优缺点对比

霍夫的优缺点:
优点:
  Hough直线检测的优点是抗干扰能力强,对图像中直线的殘缺部分、噪声以及其它共存的非直线结构不敏感。
  
缺点:
  Hough变换算法的特点导致其时间复杂度和空间复杂度都很高,并且在检测过程中只能确定直线方向,丢失了线段的长度信息。
  
LSD的优缺点:
优点:
  是一种局部提取的算法,运行速度比霍夫线变换Hough要快。
  
缺点:
  1. 对于直线相交情况,因为设置了每个点是否USED,因此每个点只能属于一条直线,若有相交必有至少一条直线被割裂为两条。又因为其基于梯度,直线交点梯度值往往又较小(不被检测为边缘点),因此很有可能相交的两条直线在交点处被割裂为四条线段。
  2. 由于局部检测算法自增长的特点,对于长线段被遮挡、局部模糊等原因经常割裂为多条直线。这些缺点在Hough变换中不存在。

你可能感兴趣的:(计算机视觉,直线检测,优缺点对比,计算机视觉)