APP下载

基于离散霍夫变换的十字线检测算法∗

2020-03-03杨利斌杜亚杰

舰船电子工程 2020年1期
关键词:霍夫线段噪声

赵 芳 张 骁 杨利斌 杜亚杰

(海军航空大学 烟台 264001)

1 引言

舰船船体三维变形会导致舰上各个武器系统姿态失准、作战效能下降,十字线检测是一种常见的实时测量船体三维变形的方法。常见的图像处理手段中,一般使用霍夫变换快速检测直线目标和十字线目标[1~2]。霍夫变换的优势是可以把画面中比较困难的全局检测转化为参数空间里比较容易实现的局部峰值检测。标准霍夫变换(SHT)在检测直线时,直线定义为

其中,x和y是图像平面的坐标轴,ρ和α分别是原点到直线的距离和原点与直线的垂线与x轴方向之间的夹角。通过式(1)可以发现,直线上所有的点包括边缘均转换到霍夫空间上。所以霍夫空间初始值为0,所有 ρ-α组合由式(1)不断累积。由于同一条线的每个点都是霍夫空间上一组单独的ρ-α,选出最大的那组 ρ-α就可以检测出直线。当图像中有大量的直线时,通过筛选出局部最大的那些ρ-α,就可以检测出它们。

大部分文献对SHT的改进都是降低计算复杂度和内存需求[3-6],很少提出新的参数。Xu在文献[7]中提出了随机霍夫变换(RHT),该方法对像素随机采样大大降低了内存消耗和计算量;滕今朝等在文献[8]提出一种分式查表法,在保证检测精度的条件下,也能减少霍夫变换的计算量。

线性方程(1)中用于检测直线的 ρ-α的最优佳分辨率很难得到[9~12]。为了解决这个难题,只能把直线的离散方程或者分区表示用于整数计算。但是,这些方法用到了量化整数参数。本文提出了一种改进的离散霍夫变换(DHT)用于十字线检测。将线段的两个端点作为参数表示线段,因此参数是整数。除此之外,霍夫空间可以很容易地平滑来用于抑制噪声和典型线选择,这是因为它的坐标轴可以由相同值求解。

2 离散霍夫变换

我们把图像平面线段端点作为DHT的参数。任意线段都可以延伸到图像边界,因此一个从一边到另一边沿着图像平面延长的线段可由两点表示。

图1 离散霍夫变换基本原理

基于上述DHT的基本原理,每个点都转换成一条线或者曲线,并在霍夫空间上积累。图1中,点 p1和 p2分别积累成线s1和s2。这个过程可以表达为比例方程。让 p(x ,y)作为图像平面的一点,y1和 y2作为y1-y2霍夫空间上的积累对,由于和 p是共线的(也就是有相同的斜率),那么比例方程为

当S上所有的点都积累到霍夫空间上,点h的积累值变的最高。在相同条件下,其余的5个霍夫空间的比例方程为

其中这些方程是按照 x2-y1,x2-y2,x1-x2,x1-y1和x1-y2的霍夫空间顺序表示的。因为SHT的参数是角度和距离,两个坐标轴的分辨率不能有任何相关,同时DHT的坐标轴是像素距离,因此它们可由相同的因子缩减像素采样,且能够由方形窗进行平滑来抑制噪声。

3 仿真实验及分析

为了检验离散霍夫变换在检测直线以及十字线的精度,分别做了单点DHT、线段DHT、DHT直线检测和DHT十字线检测等仿真实验。

3.1 单点DHT

首先在A=B=128的图像上取一个单像素点,通过DHT单点在霍夫空间上转换成直线或者曲线。如图2所示,任意一点在y1-y2和x1-x2的霍夫空间上都转换成一条直线,在x1-y1,x1-y2,x2-y1和x2-y2的霍夫空间上是一条曲线或者空白。

3.2 线段DHT

图3 线段DHT

同样地,令A=B=128。我们要找到某个霍夫空间上最大积累点,它是线段通过DHT转换成的。图3给出了一个在x1-x2霍夫空间上的最大积累点,其中最大值表示在每一个霍夫空间上的最佳积累点,因为线段从x1延长到x2。

3.3 DHT直线检测

为了证明DHT直线检测算法可以用方形窗口平滑,在原始图像中共有4条相近的直线,如图4所示。通过选择霍夫空间上局部最大值,选择其中局部最大值大于45的(τ=45),可以检测到几条线。通过选择高斯平滑的霍夫空间上局部最大值,就会检测出一条直线。

为了证明DHT可以通过缩减像素采样来得到平滑,在原始图像中共有4条相近的直线,如图5所示。通过选择缩减像素采样(64*64像素)的霍夫空间上的局部最大值,也会检测出一条直线。

图4 高斯平滑的DHT直线检测

图5 缩减像素采样的DHT直线检测

3.4 噪声图像的直线检测

为了测试该直线检测方法的可靠性,我们测试了一些包含大量随机黑白相间噪声的图像,霍夫空间是高斯平滑的y1-y2霍夫空间。如图6所示,这个包含很多噪声像素的图像经过SHT会错误地检测出很多直线(灰色表示),但是这些错误直线经过高斯平滑霍夫空间会得到消除(深灰色表示),除非有图6(h)所示的大量重度噪声。

图6 噪声图像的直线检测

3.5 十字线检测

首先创建仿真十字线变形图像。在256*256的灰度图像中心设置横线和纵线,经过二维空间的低通滤波之后,十字线边缘分布变缓,引入三维变形角,使图像产生旋转和位移。十字线创建过程如图7所示。

图7 十字线创建过程

接着读取变形之后的仿真图像;然后,通过SHT、DHT等直线检测方法得到十字线相对应的两个直线方程;最后根据两个直线方程求解十字线中心,进而得到三维变形角。表1对比了SHT和DHT两种检测方法的精度。

表1 十字线检测误差统计(单位:″)

从表1可以发现,SHT和DHT两种检测方法精度均可以达到角秒量级,其中纵挠角和艏挠角的精度较高,DHT精度好于SHT。该实验结果表明,通过改进十字线检测算法可以提高三维变形角的测量精度。

3.6 结果分析

DHT采用由两个坐标系参数化的两个端点,因此相比于原始的采用直线方程的SHT有很多优势。首先,通过低通滤波或者缩减像素采样,霍夫空间可以轻松地平滑用于噪声抑制,这是因为霍夫空间的两个轴有相同的分辨率。第二,如果直线的角度提前定义了,比如十字线检测,霍夫空间可以有选择地使用。最后,累加值与检测的线段的长度相似。但是,当直线角度未知时,DHT采用6个霍夫空间,最坏的情形下计算复杂度可能会增长到SHT的6倍以上。

4 结语

本文对常见的直线检测方法SHT进行了改进,将线段端点作为参数提出了一种离散霍夫变换十字线检测算法。仿真结果表明,该算法降低了确定坐标轴最佳分辨率的难度,抑制了噪声,提高了十字线检测的精度。但随之而来的问题是计算变得更加复杂,这需要在以后的研究中继续讨论。

猜你喜欢

霍夫线段噪声
冰山与气候变化
画出线段图来比较
基于声类比的仿生圆柱壳流噪声特性研究
汽车制造企业噪声综合治理实践
怎样画线段图
数线段
当之无愧的“冰人”
要减少暴露在噪声中吗?
当之无愧的“冰人”
观察