楊晨曉 李銘 李炎君



摘 ?要 邊緣檢測是分割與處理圖像的主要內容之一,廣泛應用于醫學、地理、化學等各大領域。圖像不同的意思就是形狀、大小各異。為提取圖像的邊緣信息中顯示的特征像素點,分析四種邊緣檢測方法以及四種形態學的基本運算,并通過實驗作出比較。
關鍵詞 MATLAB;邊緣檢測;Canny算子;開運算;閉運算
中圖分類號:TP301.4 ? ?文獻標識碼:B
文章編號:1671-489X(2020)20-0039-03
Abstract Edge detection is one of the main contents of image seg-mentation and processing. It is widely used in medicine, geography, chemistry and other fields. Different images represent different shapesand sizes of image edges, that is, different pixels of feature points. In?order to extract the feature points of image edge position, this paper introduces four edge detection methods and the application of four basic operations of mathematical morphology.
Key words MATLAB; edge detection; Canny operator; open opera-tion; closed operation
1 引言
邊緣檢測在圖文識別、車牌識別、遙感特征地圖的提取等方面都起著重大作用,目標是提取出圖像中各種參數變化的特征點。其中邊緣代表的是圖像局部位置的不連續性,也具有強度突變的特點,能凸顯相鄰兩個區域的邊界信息。通過邊緣檢測的實驗處理后,選取的區域特征信息可以理解為基于邊緣檢測方法的圖像分割。
一般在圖像中,圖像邊緣肉眼難以觀察,比如像素的灰度、紋理等特征會像第一類突變性質一樣。某圖像和它所在背景的像素若顯示灰度變化,則在圖像邊緣區域也會發生突變,一般這種變化就會呈現在劇烈的函數中。傳統的邊緣檢測方法亦是如此。在數學領域,體現出這種變化會用一階導數或二階導數[1-2]來表示,在一階導數中是在某函數為最大值時表示圖像邊緣處,二階導數是在過零點時為圖像邊緣處。一般一階導數算子分為Prewitt算子、Sobel算子和Canny算子等。另外,對圖像邊緣處理也有所擴展,比如數學形態學[3]的應用領域,主要包括膨脹、腐蝕、開運算和閉運算等邊緣處理方法,但這些方法主要體現在二值、灰度圖像中,各有千秋。后期還可研究出很多有關此學科的基本方法,這些方法可以對圖像大小和形狀分析進行處理。
2 邊緣檢測算法的一般原理
Sobel算子 ?該方法是呈現離散函數的一階差分算子,主要是計算圖像亮度變化的函數近似值。圖像中的每一個像素點都可以用此方法計算,計算的結果就會呈現與之對應的梯度矢量值。根據原始圖像{G(x,y)}每個像素點四個方向的鄰點的加權值,就能表示只要較大的加權值出現,就會靠近該像素。當適當門限取值為w時,判斷:若G(x,y)>w,則像素(i,j)表示的是邊緣像素點,否則就不是邊緣像素點。Sobel算子的優點是適應于較小的噪聲部分,還可以獲取較精確的邊緣。如果沒有要求高精度的話,就可以通過擴大鄰域提高抗噪性能,導致運算復雜度增大,提取出的邊緣也比較模糊。
Prewitt算子 ?該算子是一階微分算子的邊緣檢測方法,它可以去掉邊緣部分,主要是根據像素點的四個方向的鄰點的加權值計算的,當邊界信息達到最大值時,就可以平滑噪聲。該算子是3×3矩陣的算子,一般它的加權值是通過鄰點的八個點像素值來確定的。核心思想是對某圖像的像素點利用兩個矩陣作卷積運算,然后輸出的結果是圖像像素點的加權值。
當適當門限取值為w時,判斷:若G(x,y)>w,則像素(i,j)表示的就是邊緣信息點,否則就不是邊緣像素點。綜上所述,在進行邊緣檢測時,該算子可以消除圖像的低頻噪聲區域,便于后期的圖像分割。但使用該算子做出實驗的效果邊緣會比較模糊,不能明顯看出圖像的邊界處。所以,該方法使圖像邊緣處產生非常大的噪聲,即使較小噪聲的邊緣也會受到影響。
Canny算子 ?該方法主要目的是查找某圖像的局部邊緣信息的最大值,計算方法是利用高斯函數的導數計算出每個梯度值。其中還可通過兩個加權值檢測出某圖像的強、弱邊緣,只要這兩者結合在一起,弱邊緣就會被強邊緣包含起來。其優點在于:較弱邊緣處很容易檢測,沒有受到噪聲影響。如BW=edge(I,‘canny),自動選擇閾值用Canny算子進行邊緣檢測。BW=edge(I,‘canny,thresh),在該方法中,thresh有兩個值:高權值和低權值。如果只有一個值,則為高權值,其低權值類似等于O.4倍的高權值;當權值為0時,自動選擇低權值和高權值。
3 數學形態學運算
腐蝕和膨脹 ?膨脹和腐蝕這兩個運算主要目的是查找某圖的較大、較小區域。前者好似“區域擴大”,意思就是將某圖像的凸顯區域擴大范圍,那么實驗效果圖的凸顯區域就變大。還可讓其與某圖像所在的背景區域融合在一起,那么邊緣信息慢慢向外部區域擴大的過程就能改變物體的缺憾部分。其運算是用3×3矩陣的結構表示的,對圖像的每個像素做運算,接著再與其二值圖像做邏輯“與”運算,結果等于0,說明圖像的該像素為0;為1的結果則使二值圖像擴張一圈。
腐蝕的主要功能是將白噪聲去掉,也能將連在一起的圖像斷開。它好比“領域被縮減”,將圖像的亮度區域或白色區域削弱化,仿真效果圖的亮度部分變小。它是一種消除邊界點的方法,目標是消除小且可忽視的物體。其運算用3×3矩陣的結構來表示,對圖像的每個像素做運算,接著與其二值圖像做邏輯“與”運算,結果等于1,說明圖像的該像素為1;為0的結果則使二值圖像減小一圈。
開運算和閉運算 ?這兩個運算是膨脹和腐蝕的疊加得到的。開運算的現象是先腐蝕后膨脹,其主要作用是將較小物體去除,分離出弱小物體,平滑帶有噪聲的圖像邊緣處,不能明顯地改變圖像面積,消除了由圖像噪音形成的瑕疵點。閉運算的現象是先膨脹后腐蝕,作用是彌補一些弱小、失真的圖像邊緣位置,對這些邊緣特征點起到平滑作用。
開運算、閉運算這兩者都是按照腐蝕和膨脹的先后順序疊加的,但它們相互獨立,不可逆,如果其中一種顛倒順序,則不能得到想要的實驗效果。如果想對某二值圖像完成這兩者的實驗,采用“先開后閉”或“先閉后開”的順序都可以,但效果圖會呈現邊緣信息的缺憾和失真。
4 實驗數據分析
分別選取一張化學水分子圖片(圖1)和一張硬幣圖片(圖6)進行邊緣檢測處理,在MATLAB環境中做出各種算法的仿真實驗,并分析優缺點,圖2到圖5是四種算子檢測實驗圖。為了更清楚地分析圖像邊緣區域的特征點,將四種結果圖局部區域放大。
實驗表明,采用邊緣檢測的四種方法是可以對同一張圖片進行邊緣處理的,效果圖和原圖有明顯的對比。其中,圖2檢測出的圖像邊緣信息有噪聲,圖3、圖4提取的邊緣相對準確,這三種方法的優點都是計算簡潔、實現快速以及有較成熟的技術,缺點在于沒有明顯平滑噪聲,對實驗過程產生一些干擾信號,在邊緣檢測時不能完成對整體圖像邊緣信息的提取,即使提取也不是很精確。但圖5檢測時就能將弱小邊緣檢測出來,并且可以平滑噪聲,效果最好,和其他算子比較也相對明顯。
實驗表明,圖7的效果顯示出邊緣信息由內向外擴大,彌補圖像中的空隙;圖8的邊緣信息則消失,無法提取出邊緣點,顯得物體失真或模糊不清;圖9是先腐蝕后膨脹的現象;圖10是先膨脹后腐蝕的現象。和原圖相比,腐蝕的效果圖要比原圖變得更小,所以適合去除高峰噪聲;而灰度值膨脹效果顯示各元素比之前的要大,所以適合去除低谷噪聲。
5 結語
本文主要敘述圖像邊緣檢測的Canny算子檢測效果最好,也介紹在數學形態學中,閉運算主要適應于去除高峰噪聲,而適應于去除低谷噪聲的是膨脹運算。目前沒有一種完善的方法能適用所有的圖像及地物特征的邊緣檢測實驗,還需進一步研究。
參考文獻
[1]楊莎,熊緯,張昭.一種基于自適應閾值Canny算法的輸變電設備圖像檢測方法研究[J].電子設計工程,2019(15):31-36
[2]田夢娜,徐泮林,丁鵬文.基于MATLAB的邊緣檢測算法研究[J].測繪與空間地理信息,2020(2):197-199,203,207.
[3]羅朝陽,張鵬超,姚晉晉,等.一種基于形態學的邊緣檢測算法[J].計算機應用與軟件,2020(2):177-181,247.