《电子技术应用》
您所在的位置:首页 > 其他 > 设计应用 > 基于IDL语言实现侧扫声纳图像可视化及预处理
基于IDL语言实现侧扫声纳图像可视化及预处理
来源:微型机与应用2011年第2期
马文东, 熊显名
(桂林电子科技大学 电子工程学院, 广西 桂林 541004)
摘要: 阐述了IDL(Interactive Data Language)语言的图像处理优点,介绍了侧扫声纳XTF格式数据的特点,利用IDL语言开发了集图像可视化、格式转换、图像校正和预处理于一体的侧扫声纳图像预处理软件。结果表明,该语言面向矩阵的特性和强大的图像处理能力减小了开发的复杂性,缩短了开发周期,对国内声纳图像处理软件开发有一定参考价值。
Abstract:
Key words :
</a>摘  要: 阐述了IDL" title="IDL">IDL" title="IDL">IDL" title="IDL">IDL(Interactive Data Language)语言的图像处理优点,介绍了侧扫声纳XTF格式数据的特点,利用IDL语言开发了集图像可视化、格式转换、图像校正和预处理于一体的侧扫声纳图像预处理软件。结果表明,该语言面向矩阵的特性和强大的图像处理能力减小了开发的复杂性,缩短了开发周期,对国内声纳图像处理软件开发有一定参考价值。
关键词: 侧扫声纳;IDL;水柱校正;图像预处理

    我国是海洋大国,对海洋资源的开发和利用已上升到国家军事和经济战略高度。侧扫声纳海底成像系统 ( 以下简称侧扫声纳)以其高精度、高效率、高分辨率、对海底微观地貌直观成像等特点,在地质勘探、目标探测、海洋工程等方面的应用越来越广泛,进而为海洋测绘、海洋工程、海洋开发、反潜作战、 水下救援、物理海洋研究等提供第一手数据。数据的最终利用形式就是侧扫声纳图像(Sidescan Sonar Image)。正确快捷地判读和分析声纳图像是识别海底地貌、沉船、水雷、海底管线等人工或自然目标的前提。
    现在商业声纳图像处理软件价格昂贵,且其分析技术为商业机密而未能对外公开,因此在使用商业软件分析的同时无法了解其图形绘制的原理,只能完全被动接受其处理结果。目前国内研究人员一般采用VC++结合OpenGL或者Matlab开发,由于声纳图像格式的灵活性,实现声纳图像的分析和处理难度较大,且混合编程也增加其开发难度。而对于侧扫声纳数据处理软件,国内一些单位进行了初步开发,但是并没有真正商品化的产品。所以,侧扫声纳数据采集及后期处理软件在国内仍有很大发展空间。
    交互式数据语言IDL(Interactive Data Language)是Research Systems公司(现为ITT Visual Information Solutions公司)推出的致力于科学数据的可视化和分析语言,是数字信号与图像的高级处理工具,是跨平台应用开发的最佳选择。作为第四代面向对象的可视化数据分析语言,IDL具有其他语言无法比拟的优点,在现代科学计算和数据处理中占有非常重要的地位。目前,该语言成为国内遥感影像医学图像处理领域的热门语言,但是在声纳图像处理领域还是空白。本文针对侧扫声纳图像的特点,有效利用IDL语言强大的可视化和高级图像处理能力,方便快捷地实现侧扫声纳图像可视化、格式转换、图像校正和预处理,对国内侧扫声纳图像处理软件开发有一定参考价值。
1 开发语言选取依据
    IDL 是一种面向矩阵、语法简单的第四代可视化语言,集交互分析、可视化、大型商业开发于一体,为用户提供完善、灵活、有效的开发环境。简言之 ,IDL 语言具备如下显著特点:快速分析超大规模数据的能力、高级图像处理能力、交互式二维和三维图形技术、面向对象的编程方式、OpenGL 硬件图形加速、集成的数学分析与统计软件包、完善的信号分析功能、灵活的数据输入输出方式、 跨平台图形用户界面工具包以及多种外部程序扩展方式。IDL已成为交互式数据分析和可视化的首选工具。
    (1)IDL具有快速分析超大规模数据的能力,可以读写任意格式或无格式的数据,支持多种数据类型,可以处理大于2 GB的海量数据文件。
    (2)IDL可进行交互式的二维及三维数据分析。例如利用Windows命令可以设置图像显示窗口的个数、大小和形状,利用TV或TVSCL命令显示用户选择的图像。
    (3)IDL具有完善的图像处理软件包,主要包括图像的缩放、移动和旋转、图像的四则运算、图像的扭曲、图像区域处理ROI和形状分析、图像增强、图像滤波、图像直方图、图像平滑、图像分割、图像边界提取和图像的形态学处理(腐蚀、扩张、开和闭)等。用户可根据自己的需求对其组合优化。
    (4)IDL提供“交互”和“编译”两种模式(C和FORTRAN 只提供“编译” 一种模式),IDL可以在任何时候创建和重定义变量的类型、 大小和数值(C和FORTRAN 只能在执行时重定义变量的大小和数值)等特性,都使得用 IDL 语言编写程序代码的效率非常高(通常要比C和FORTRAN语言的效率高80%左右) 。
2 侧扫声纳格式及读取方法
    侧扫声纳是海底开发和研究的必备设备,它是一种高分辨率的水下成像工具,因为是距离成像,工作时,换能器距海底高度和系统量程之比可达1:10,最终表现在图像上时会使目标存在严重透视收缩、定点位移等几何畸变。侧扫声纳发出超声波束射向海底回收后,每Ping接收的是一条反映海底地质特性的像素序列,每个像素反映的是其对应的声强值。同时,侧扫声纳波束是左右舷侧向发射的,故在中间大约10°范围内没有回波,成为盲区,也叫水柱区(water column),对图像进行预处理时需通过相应算法对其做水柱校正。
    不同公司的声纳图像格式对应的数据格式也不尽相同,本文采用被广泛使用的XTF声纳格式的数据,参考Triton Imaging,Inc.的eXtended Triton Format(XTF)Rev.25,该数据格式以二进制存储,具有较强的伸缩性和可扩展性,可保存声纳、航行、遥测、测深等多种类型的信息。每个文件都包括不同的数据包,根据数据包的标识信息识别数据包的类型,这样可以只读取所需要数据包。XTF文件开始是XTFFILEHEADER结构,长度最少为1 024 KB(本文处理数据一律为1 024 KB), 它包括声纳通道信息和测深通道信息等;后面是不同类型的数据包,目前主要有声纳、 测深、 姿态和注释四种类型。每个数据包都有一个头结构。数据包的位置可以任意, 读取时依据头结构的信息来确定数据包的类型。对于通道,每个通道有通道头结构,后面是通道测量数据。XTF格式侧扫声纳数据结构如图1所示。

    数据读取流程如图2所示。

    IDL读取XTF格式文件代码如下:
    file =READ_BINARY(sonardata
    IF ((file[0] EQ 123) AND (file[1] EQ 254) AND (file[1024] EQ 206) AND(file[1025] EQ 250)) THEN BEGIN
         imagedata=READ_BINARY(sonardata,DATA_START
                         =1 024
           ENDIF
              datasize=N_ELEMENTS(imagedata)//获取数据区大小
            OPENR,lun, sonardata,/get_lun          //打开数据区
              POINT_LUN,lun,166L
            Channelsnumber=0
            READU,lun, Channelsnumber
            IF Channelsnumber LT 6 THEN BEGIN
                  PRINT,Channelsnumber
                  POINT_LUN,lun,262L
                  datatype=0
                 POINT_LUN,lun,264L
                  shujulie=0UL
                  READU,lun, shujulie
                  POINT_LUN,lun,1284L
                  SlantRange=0.0
                  READU,lun, SlantRange
                  POINT_LUN,lun,1034L
                  NumBytesThisRecord=0ul
                  READU,lun, NumBytesThisRecord
                  PRINT,NumBytesThisRecord
                   datacolumn=NumBytesThisRecord/datatype
            …
    侧扫声纳图像可视化软件界面如图3所示。

    IDL语言强大的可视化功能,只需一个TVSCL函数即可绘出图形。
3 软件功能介绍
    本软件能够实现对侧扫声纳XTF格式图像的读取和显示、校正、格式转换和图像滤波处理功能。软件结构如图4所示。

4 侧扫声纳图像预处理实现
    因原始图像比较灰暗,且未作任何预处理,根据侧扫声纳图像的应用要求,需要对其做图像增强、水柱校正和航速校正。利用IDL语言强大的矩阵运算能力,剪切出侧扫图像。首先对侧扫图像直方图统计包络曲线,代码为:
    PLOT,HISTOGRAM(equalizedImage), /XSTYLE, /YSTYLE,
    $TITLE=′Adaptive Equalized Image Histogram′,
    $XTITLE=′Intensity Value′,YTITLE=′Number of Pixels of That Value′
    侧扫图像直方图如图5所示。

    因为IDL中,过程TV(图像数组直接转换为字节型的值而不做任何调整)和TVSCL(图像数组被转化为线性调整的字节型数值)用以显示图像。声纳图像数组多半为短整型,故需对其做线性调整,从直方图统计结果可以看出灰度图像值几乎全部集中在0~4 000之间,此方法会压缩少量像元点的信息,所以选择端点至关重要,本文选取4 000,利用函数BYTSCL,设置其参数MAX=4 000,MIN=0即可轻松实现。结果表明,图像增强效果很好,利于对图像判读。之后对侧扫图像做了水柱校正和航速校正,如图6所示。
    最后实现对侧扫声纳格式向其他格式(如TIF、 BMP、JPEG)的转换。分别使用 WRITE_TIFF、WRITE_BMP、WRITE_JPEG函数即可方便地实现相应格式的转换,无需编写大量代码。为提高图像信息的利用率,分别对其进行平滑和滤波处理,如图7所示。对比来看,中值滤波效果更好。

    本文首次尝试利用IDL语言开发侧扫声纳图像处理软件,并给出了处理结果。该结果表明IDL非常适合声纳图像的处理和相应软件开发,具有如下优点:(1)提供方便的图形用户界面GUI和人机交互性 ,操作人员可以通过参数设置和按钮来交互控制程序运行; (2)便捷的可扩展性,模块化的程序设计方法便于今后进一步扩展;(3)良好的可移植性,IDL 程序可以运行于 Windows、Unix和 Macintosh 等操作系统,也可将程序通过 IDL 虚拟机打包运行。侧扫声纳图像格式各公司都不统一,XTF格式。因其格式灵活性和扩展性受到青睐,使用最为广泛。但XTF的这些特点对其读取相对来说很麻烦,在Matlab中存在强制64 bit参与计算的瓶颈。本文实验结果表明,IDL更加适合声纳图像处理软件的开发,奠定了良好的基础和展示了广阔的应用前景,也为国内该领域软件开发提供了一定借鉴。
  目前本系统还处于开发探索阶段 ,今后将主要围绕以下两方面进一步完善系统功能: (1)增加图像分割、地质分类等实用图像分析模块;(2)将系统扩展处理成不同格式的侧扫声纳数据,进一步优化系统和算法设计。
参考文献
[1] Triton copmpany introduce of XTF[EB/OL]. http://www.tritnoelics.com/public/download/FileFormatInfo/XtfFileFormatX12.pdf.
[2] 滕惠忠,严晓明,李胜全, 等.侧扫声纳图像增强技术[J].海洋测绘,2004,24(2):47-49,70.
[3] 闫殿武.IDL可视化工具入门与提高[M].北京:机械工业出版社,2003.
[4] 赵志强,郑小林,王星,等. 基于IDL的医学数字影像处理技术初探[J].中国医学影像技术,   2005,21(11):1755-1757.
[5] 许枫,丛鸿文. 侧扫声纳声图判别[J].海洋测绘,2001,21(1):58-61.

此内容为AET网站原创,未经授权禁止转载。