硅谷网8月31日消息 《硅谷》杂志2012年第14期刊文称,为准确地提取出SAR图像中溢油区域边缘轮廓信息,提出一种融合分水岭及canny算子的SAR图像边缘检测算法。该算法首先使用形态学重建技术对前景图象进行标记,并进行开关操作,去除边缘无关信息,然后对前景进行区分操作。利用分水岭算法及canny算子较为精确地提取出溢油区域边缘轮廓信息并用MATALAB仿真实验,结果表明,与经典的边缘检测方法相比,该方法在精确定位图像边缘的同时能更精确、更完整地检测出目标的边缘特征。
海上溢油现象严重影响海洋生态环境,因此对海洋表面进行实时动态监测成为必要。合成孔径雷达(SAR)具有高分辨率、大面积数据获取能力,全天候、全天时数据获取能力和一定的穿透植被、遮盖物的能力[1]。因此被应用于海洋表面的溢油监测,本文则选取合成孔径雷达所监测到的墨西哥湾溢油图像进行边缘检测处理,得到了良好的溢油区域的边缘轮廓信息,为以后SAR图像特征的提取及计算机自动识别SAR图像目标区域奠定了基础。目前已有许多边缘检测算子,如Sobel算子、Prewitt算子、Robert算子、Log算子、Canny算子等[1]。这些传统的算子对SAR图像进行检测往往会使得目标的边缘改变,不能够获得连续的边缘轮廓信息,给后续处理带来困难。而融合其中的Canny算子和标记分水岭分割算法能够较好的获得准确连续的边缘轮廓信息。
1SAR图像预处理
由于在获取溢油区域的SAR图像的过程中存在各种干扰,所获得的SAR原始图像当中存在相干斑噪声及几何失真和辐射失真,因此必须对其进行一系列滤波及矫正预处理。本文则采用NEST3C软件对原始SAR图像进行几何矫正、辐射矫正及斑点滤波,其中斑点滤波采用3*3均值滤波和7*7gamma滤波。对预处理完的图像则使用ENVI4.7软件对其进行数据重采样获得本文所要处理的SAR图像。
2基于Canny算子的SAR图像边缘检测
Canny边缘检测算子是一类最优边缘检测算子,他在许多图像处理领域得到了广泛的应用[2]。Canny算子具有定位能力强、低误判率、抑制虚假边缘等优点[3]。但是Canny算子是针对加性噪声模型的,因此在SAR图像的边缘检测时容易使边缘产生不连续性。
3基于标记分水岭算法的SAR图像边缘检测
分水岭边缘检测方法,是一种基于拓扑理论的数学形态学的检测方法,其基本思想是把图像看作是测地学上的拓扑地貌,其中灰度值对应着地形高度值[2]。每一个小的局部区域及其影响区域称为集水盆地,集水盆地的边界则形成分水岭。分水岭算法就是向集水盆地不断灌入水的过程,在两个集水盆地汇合处形成山脊,即形成分水岭。找出分水岭便找出边缘信息。
标记分水岭图像分割算法[4]能够将图像中的目标区域与非目标区域紧密连接的目标区域分割出来,能够分离出弱边缘,且分水岭变换产生完整的边界,这样就避免了边界连接的后处理。但是由于噪声和纹理细节会带来过分割问题,另外,在分割过程中较少用到边界特征信息,使得图像的过分割问题比较突出,容易产生虚假边缘。
4组合两种算法的边缘检测算子及其MATALAB实现
为了使标记分水岭分割算法能够用于SAR图像边缘检测并使其具有连续性且边缘定位准确,又能抑制虚假边缘。可在标记分水岭算法的基础上融合canny算子,形成一种良好地描述溢油区域边界信息的算子。
其实现过程为:通过标记分水岭分割算法标记非溢油区和边界区为前景区,溢油区为背景区,再使用canny边缘检测算子进行边缘检测分离出非溢油区和边界区,从而得到较为完整的溢油区域边缘轮廓信息。
4.1其MATALAB处理结果及具体程序代码如下
MATALAB程序代码为:
clear;
[I,p,t]=freadenvi_image('F:\b\ENVISAT-ASA_IMP_1PNCUH20060524_141948_000000162048_00025_22123_0430.N1_Calib_Spk_Spk_reprojected.data\Sigma0_VV(4122-4653)(5898-6500)');%读取envi图像
subplot(2,2,1)
imshow(I),title('预处理完图像')
hy=fspecial('log');%log算子
hx=hy';
Iy=imfilter(double(I),hy,'replicate');
Ix=imfilter(double(I),hx,'replicate');
gradmag=sqrt(Ix.^2+Iy.^2);
L=watershed(gradmag);
se=strel('disk',45);
Io=imopen(I,se);
Ie=imerode(I,se);
Iobr=imreconstruct(Ie,I);
Ioc=imclose(Io,se);
Iobrd=imdilate(Iobr,se);
Iobrcbr=imreconstruct(imcomplement(Iobrd),...
imcomplement(Iobr));
Iobrcbr=imcomplement(Iobrcbr);
fgm=imregionalmax(Iobrcbr);
I2=I;
I2(fgm)=255;
se2=strel(ones(1,1));
fgm2=imclose(fgm,se2);
fgm3=imerode(fgm2,se2);
fgm4=bwareaopen(fgm3,20);
I3=I;
I3(fgm4)=255;
bw=im2bw(Iobrcbr,graythresh(Iobrcbr));
D=bwdist(bw);
DL=watershed(D);
bgm=DL==0;
gradmag2=imimposemin(gradmag,bgm|fgm4);
L=watershed(gradmag2);
I4=I;
I4(imdilate(L==0,ones(3,3))|bgm|fgm4)=255;
subplot(2,2,2)
imshow(I4)%突出前景及边界
title('分水岭算法边缘检测')
subplot(2,2,3)
Y=edge(I,'canny');
imshow(Y),title('canny边缘检测');
subplot(2,2,4)
Z=edge(I4,'canny');
imshow(Z),title('融合边缘检测');
5结论
1)传统的边缘检测方法能够获取目标的一些边缘特征,但提取出的目标边缘特征存在断裂及目标定位不准确的情况。此外,原始方法提取的边缘特征在细化描述边缘轮廓时不能实现有效检测。
2)利用本文方法提取的边缘特征清晰、连续,能够较好的描述原始SAR图像中溢油区与非溢油区分界处边缘轮廓信息。(原文载于《硅谷》杂志2012年第14期,硅谷网及《硅谷》杂志版权所有,未经允许禁止转载) |
|