邱志伟,刘晓霞,章铭诚
(1.江苏海洋大学 海洋技术与测绘学院,江苏 连云港 222005)
由于具有广泛的覆盖范围和全天候的能力,合成孔径雷达(SAR)图像海岸线提取变得越来越受欢迎。与传统的光学遥感和高光谱遥感相比,卫星机载SAR具有全天候的成像能力,特别是可在云层多时拍摄图像。同时,SAR 具有的穿透性使其能获得反映目标微波散射特性的图像,成为获取地物信息的重要方法。由于斑点和对比度不足将导致强大的洋流、阴影或特定的海岸类型(沙质海岸)等,因此高精度的海岸线提取仍是一个具有挑战性的问题。在海岸研究中,遥感技术凭借其独有的广泛检测范围和简单快捷的数据收集能力,成为海岸线研究的重要工具。近年来,国内外许多学者对SAR 图像的海岸线检测方法进行了研究,大致分为4 类:区域方法[1]、阈值方法[2]、马尔可夫随机场方法[3]、人工神经网络方法[4]。本文采用K-means聚类分割法结合形态学处理的方法,利用Canny 算子提取海岸线,并对提取结果进行了分析。
K-means 聚类分割的基本思想是将k个点集中到空间中,并对与其最邻近的物体进行分类。通过迭代的方式使每个聚类中心的值不断更新,直到最佳聚类结果出现,整个更新迭代的过程才会停止。为了简单的理解这个过程,本文将进行一个小实验来演示运算过程。
首先利用randn 函数生成3 个正态分布的随机矩阵,如图1a 所示,称为原始图像;再生成k个随机的聚类中心点,为了简单起见,设置k与矩阵数相同,即k=3;然后分别计算每个数据点到这些中心的距离,各数据点分别把距离最短的那个中心点作为自己的类别。此时,每个数据点都有自己对应的中心点了,但由图1b 可知,此时聚类并不准确,需重新计算中心点的位置。计算所有蓝色点的中心,并将蓝色中心点移动到计算出来的位置上,此时图1c 中的绿色点就会被归类到新的蓝色中心点,从而被染上蓝色。绿色和红色的中心点也同理移动到新的位置。不断重复上述步骤,直到中心点迭代趋于稳定,停止迭代,算法结束,得到的聚类结果如图1d 所示。
图1 聚类分割
二值图像中的噪声有多种表现形式,其中最具代表性的是点和小孔。图3 为从本次实验降噪前图像(图2)中截取的一部分。点图和针孔是像素连接部件和相对较小面积的相邻像素连接部件。一般来说,通过腐蚀处理和膨胀处理可有效去除这些连接。
图2 降噪前图像
图3 局部放大
本次实验反复尝试了多个结构元素,在结构元素为4 时,实验具有较好效果,因此最终选定的参数大小为4。在实际图像处理时,通常采用开操作来消除比结构元素更小的尺寸,在保持细节的同时,尽量使图像的整体灰度值和明亮区域大于结构元素;相反地,采用封闭操作来消除比结构元素小的黑色细节,也需使图像和黑暗区域的灰度值大于结构元素。
通过上述描述可简单得到一个结论:同时采用开运算和闭运算就可达到滤除各种噪声的目的,且若能将多结构元素与开闭运算相结合,就能在保持图像细节方面获得极大的成果。
边缘检测的基本思想是通过检测每个像素及其相邻像素的状态来确定像素是否位于影像的边缘位置。常见的边缘算子包括Roberts 算子、Prewitt 算子和Canny 算子。
1.3.1 Roberts 算子
该算子是斜率偏差的梯度计算方法[5]。梯度的大小表示边缘的强度,梯度的方向垂直于边缘。Roberts 算子实际上是试图将两个方向的值区分±45°旋转,具有很高的定位精度,且在水平和垂直方向都能很好地工作,但对噪声敏感。
1.3.2 Prewitt 算子
该算子是一阶微分算子的边缘检测,利用像素之间的灰度差异来实现最大边缘检测,并消除一些对噪声影响平滑的假边缘。其原理是采用双向模板和邻域视图卷积来完成图像空间。双向模板负责检测水平边缘和垂直边缘。由于平均值可减少或消除噪声,因此Prewitt 算子首先求取平均值,再根据差值找出梯度。Prewitt 算子利用像素顶部和底部,左侧和右侧邻域之间的灰色差异,并在边缘达到极限进行检测。Prewitt算子将差分运算与局部平均相结合,在3×3 邻域内计算梯度,虽可抑制噪声,但也使得检测出的边缘较粗,无法精确定位边缘位置[6]。Prewitt 算子利用阈值进行边缘检测,可抑制噪声,但需人为设定阈值[7]。
1.3.3 Canny 算子
Canny J 于1986 年提出了Canny 边缘检测算法,并在很多图像处理领域被广泛使用[8-9]。利用Canny 算子检测边缘对检测算子的要求包括[10]:低错误率、高位置精度、每个边缘点具有唯一的响应、形成单个像素宽度的边缘。Canny 算子的具体实现步骤为:
1)去噪声。边缘检测算法无法处理的原始图像,因此原始图像数据必须先通过二维高斯滤波模板进行卷积。卷积后产生的图像与原始图像相比有点模糊,这是消除噪声的必要成本。
2)梯度计算。导数算子可计算得到灰度图像在两个方向上的导数GX和GY,进而计算得到梯度的幅值和方向,即
3)梯度方向确定。计算边缘的方向,并以多个角度(如0°、45°、90°和135°)划分边缘的渐变方向,以找出像素方向上的相邻像素。
4)遍历整个图像。当两个像素的灰度值不是梯度方向前后像素灰度值的最大值时,像素的灰度值为0,即不是边缘。
5)通过累积直方图的方式求取两个阈值。显然,高于阈值则是边缘,低于阈值则不是边缘。若检测在两个阈值的中间,则看该像素相邻像素中是否有超过高阈值的边缘像素,如果有,则是边缘;否则,就不是边缘。
本文分别利用4 种算子提取同一张图像,并比较提取效果,以决定实验中使用何种算子。由图4 可知,利用Canny 算子提取的边界最连续、最平滑,因此本文选择Canny 算子作为海岸线提取的边缘算子。
图4 算子演示图
本文海岸线提取技术路线如图5 所示。
图5 技术路线图
本文选取的实验数据为黄海海区Sentinel-1A 的图像,是一幅待处理的原始SAR 图像(图6),成像时间为2017-12-05,极化方式为VV,像元大小为15×15。
图6 原始图像
SAR 图像信息主要受后向散射影响,影像亮度代表后向散射强度,像元内表面越粗糙后向散射越强;表面越光滑,产生镜面反射,后向散射越弱,亮度越低。实验采用的软件为Matlab R2017a 版本,并在Windows10 系统下运行。
从图6 中截取一部分海岸线,如图7a 所示;利用K-means 聚类分割法对该图像进行处理,使海洋与陆地的区分性增加,结果如图7b 所示;再根据 K-means聚类图第1 0 个聚类的聚类模式进行分割二值化(图7c),可以看出,经过二值化的图像上有很多明显的噪声,点状图和小孔遍布了整张图像,因此需对其进行填充和去噪处理,去噪后的效果如图7d 所示。显然海岸线部分看上去仍有问题,利用形态学闭运算进行处理,实验设置结构元素为4,先膨胀再腐蚀,结果如图7e 所示;再利用Canny 算子提取海岸线,结果如图7f 所示。最后,为了验证海岸线提取结果的正确性,将提取的海岸线与原始地图叠加在一起,如图8 所示。
图7 海岸线提取过程
由图8 可以看出,提取的海岸线连续性较好,平滑度也十分优秀,且与原始海岸线基本重合。
图8 海岸线提取最终结果
在图像边缘提取的应用中,Canny 算子对图像边缘的定位精确度较高,提取的图像真实边缘较多且较细,相较于经典的一阶和二阶微分算子已有很大的提高。与常用的边界跟踪方法相比,K-means 聚类分割法在精度上略差于边界跟踪方法,但在应用性方面,却比前者强许多,应用时简单、快速,具有可伸缩性和高效性。假设完整的海岸线被图像所分割,若采用边界跟踪法会造成只能追溯到一半海岸线而另一半海岸线无法显示的尴尬局面,但K-means 聚类分割法无此限制,对海岸线被图像分割的适应性更强,方法更简单、方便。
通过查阅国内外文献可知,SAR 图像的来源正在不停的增加,这得益于国内外空间技术和计算机水平的日益增长,使得SAR 影像处理需要的数据有了更多的选择。本文主要介绍了一些简单的海岸线提取方法,并基于国内外的研究现状和实验提出了一种适用于SAR 图像的在K-means 聚类分割法上结合形态学处理的海岸线提取方法。该方法对现有数据能得到不错的结果,但准确性不是特别高,需进一步研究。