當前位置:編程學習大全網 - 編程語言 - 基於融合的SAR圖像海洋溢油邊緣檢測算法及MATALAB實現_圖像邊緣檢測算法

基於融合的SAR圖像海洋溢油邊緣檢測算法及MATALAB實現_圖像邊緣檢測算法

摘 要: 為準確地提取出SAR圖像中溢油區域邊緣輪廓信息,提出壹種融合分水嶺及canny算子的SAR圖像邊緣檢測算法。該算法首先使用形態學重建技術對前景圖象進行標記,並進行開關操作,去除邊緣無關信息,然後對前景進行區分操作。利用分水嶺算法及canny算子較為精確地提取出溢油區域邊緣輪廓信息並用MATALAB仿真實驗,結果表明,與經典的邊緣檢測方法相比,該方法在精確定位圖像邊緣的同時能更精確、更完整地檢測出目標的邊緣特征。

 關鍵詞: SAR圖像;分水嶺算法;溢油;MATALAB;邊緣輪廓檢測

 0 前言

 海上溢油現象嚴重影響海洋生態環境,因此對海洋表面進行實時動態監測成為必要。合成孔徑雷達(SAR)具有高分辨率、大面積數據獲取能力,全天候、全天時數據獲取能力和壹定的穿透植被、遮蓋物的能力[1]。因此被應用於海洋表面的溢油監測,本文則選取合成孔徑雷達所監測到的墨西哥灣溢油圖像進行邊緣檢測處理,得到了良好的溢油區域的邊緣輪廓信息,為以後SAR圖像特征的提取及計算機自動識別SAR圖像目標區域奠定了基礎。目前已有許多邊緣檢測算子,如Sobel算子、Prewitt算子、Robert算子、Log算子、Canny算子等[1]。這些傳統的算子對SAR圖像進行檢測往往會使得目標的邊緣改變,不能夠獲得連續的邊緣輪廓信息,給後續處理帶來困難。而融合其中的Canny算子和標記分水嶺分割算法能夠較好的獲得準確連續的邊緣輪廓信息。

 1 SAR圖像預處理

 由於在獲取溢油區域的SAR圖像的過程中存在各種幹擾,所獲得的SAR原始圖像當中存在相幹斑噪聲及幾何失真和輻射失真,因此必須對其進行壹系列濾波及矯正預處理。本文則采用NEST 3C軟件對原始SAR圖像進行幾何矯正、輻射矯正及斑點濾波,其中斑點濾波采用3*3均值濾波和7*7gamma濾波。對預處理完的圖像則使用ENVI 4.7軟件對其進行數據重采樣獲得本文所要處理的SAR圖像。

 2 基於Canny算子的SAR圖像邊緣檢測

 Canny邊緣檢測算子是壹類最優邊緣檢測算子,他在許多圖像處理領域得到了廣泛的應用[2]。Canny算子具有定位能力強、低誤判率、抑制虛假邊緣等優點[3]。但是Canny算子是針對加性噪聲模型的,因此在SAR圖像的邊緣檢測時容易使邊緣產生不連續性。

 3 基於標記分水嶺算法的SAR圖像邊緣檢測

 分水嶺邊緣檢測方法,是壹種基於拓撲理論的數學形態學的檢測方法,其基本思想是把圖像看作是測地學上的拓撲地貌,其中灰度值對應著地形高度值[2]。每壹個小的局部區域及其影響區域稱為集水盆地,集水盆地的邊界則形成分水嶺。分水嶺算法就是向集水盆地不斷灌入水的過程,在兩個集水盆地匯合處形成山脊,即形成分水嶺。 找出分水嶺便找出邊緣信息。

 標記分水嶺圖像分割算法[4]能夠將圖像中的目標區域與非目標區域緊密連接的目標區域分割出來,能夠分離出弱邊緣,且分水嶺變換產生完整的邊界,這樣就避免了邊界連接的後處理。但是由於噪聲和紋理細節會帶來過分割問題,另外,在分割過程中較少用到邊界特征信息,使得圖像的過分割問題比較突出,容易產生虛假邊緣。

 4 組合兩種算法的邊緣檢測算子及其MATALAB實現

 為了使標記分水嶺分割算法能夠用於SAR圖像邊緣檢測並使其具有連續性且邊緣定位準確,又能抑制虛假邊緣。可在標記分水嶺算法的基礎上融合canny算子,形成壹種良好地描述溢油區域邊界信息的算子。

 其實現過程為:通過標記分水嶺分割算法標記非溢油區和邊界區為前景區,溢油區為背景區,再使用canny邊緣檢測算子進行邊緣檢測分離出非溢油區和邊界區,從而得到較為完整的溢油區域邊緣輪廓信息。

 其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圖像中溢油區與非溢油區分界處邊緣輪廓信息。

 參考文獻:

 [1]張靜、王國宏、劉福太,基於正則化方法的SAR圖像分割及目標邊緣檢測算法,吉林大學學報(工學版),2008年1月第38卷第1期.

 [2]張德豐,詳解MATALAB數字圖像處理,電子工業出版社,2010年.

 [3]安成錦、杜琳琳、王衛華、陳曾平,基於融合邊緣檢測的SAR圖像線性特征提取算法,電子與信息學報,第31卷第6期.

 [4]高麗、楊樹元、李海強,壹種基於標記的分水嶺圖像分割新算法,中國圖象圖形學報,2007年6月第12卷第6期.

  • 上一篇:測量規範的種類
  • 下一篇:19朗威的主人可以和妳分享壹下他的感受嗎?
  • copyright 2024編程學習大全網