王 芳,錢 煒,李文超
(上海理工大學 機械學院,上海 200093)
如果某個像素點具有該像素點及其直接領(lǐng)域的灰度值呈現(xiàn)階躍或屋頂變化這種屬性,則此像素點被稱為邊緣點,而這些邊緣點的集合構(gòu)成了圖像的邊緣[1]。圖像的邊緣是圖像最基本的特征,一幅簡單的素描可以僅由幾個線條就勾勒出物體的輪廓,由此可見圖像信息最集中的地方就是圖像的邊緣。圖像的邊緣提取除去了非相關(guān)信息,同時保留了圖像的重要結(jié)構(gòu)特性,這樣可以很大程度地減少需要處理的數(shù)據(jù)量。因此,圖像的邊緣提取是圖像分割、圖像識別、圖像分析、機器人視覺等初級處理過程中非常重要的一個步驟[2]。
傳統(tǒng)的邊緣檢測算法,如Roberts算子、Sobel算子和Prewitt算子,幾乎都是基于圖像的梯度變化而構(gòu)造出邊緣檢測算子的[3]。這些傳統(tǒng)的邊緣檢測算子計算簡單,但是對噪聲敏感,定位精度低,所以邊緣檢測算法仍是圖像處理問題中的一個“瓶頸”。鑒于這種現(xiàn)狀,本文提出了一種基于數(shù)學形態(tài)學的圖像邊緣提取算法。
數(shù)學形態(tài)學是基于形態(tài)結(jié)構(gòu)元素對幾何形狀和結(jié)構(gòu)屬性進行分析和描述的數(shù)學方法,也是一種建立在幾何代數(shù)和集合論基礎上,通過非線性疊加來描述圖像的非線性的處理系統(tǒng)[4]。數(shù)學形態(tài)學的基本思路是,通過使用一定形態(tài)的結(jié)構(gòu)元素去度量在目標圖像區(qū)域中的可放性和填充方法的有效性,并提取更為本質(zhì)的圖像形態(tài)結(jié)構(gòu)相關(guān)特性信息,進而達到對目標圖像分析和識別的目的[5]。
數(shù)學形態(tài)學可以剔除目標圖像中不相關(guān)的形態(tài)結(jié)構(gòu)屬性,而保留基本的本質(zhì)的形態(tài)結(jié)構(gòu)屬性,達到簡化目標圖像數(shù)據(jù)的目的,從而使得它具有并行速度快、易于硬件實現(xiàn)的特點[6]。目前,數(shù)學形態(tài)學已經(jīng)廣泛應用于模式識別、機器視覺、顯微圖像分析、醫(yī)學圖像處理、計算方法與數(shù)據(jù)處理等領(lǐng)域,在解決濾波降噪、圖像增強、邊緣檢測、圖像分割、特征提取、紋理分析、圖像恢復與重建、圖像壓縮等圖像處理問題中有著明顯的優(yōu)勢[7]。
數(shù)學形態(tài)學最基本的形態(tài)轉(zhuǎn)換包括膨脹和腐蝕[8],它們能實現(xiàn)許多的功能,如濾波降噪、對目標圖像中獨立的元素進行分割以及彌合目標圖像中相鄰的元素。數(shù)學形態(tài)學也能實現(xiàn)尋找目標圖像中的明顯區(qū)塊的極大值區(qū)域或極小值區(qū)域,以及求出目標圖像的梯度[9]。
膨脹(Dilation)的定義是:將具有一定形態(tài)的結(jié)構(gòu)元素B平移距離a后得到新的形態(tài)相同的結(jié)構(gòu)元素Ba,如果Ba擊中了X,則記下這個a點,所有滿足此條件的a點所組成的集合稱為X被B膨脹的結(jié)果。用公式表示為:
腐蝕(Erosion)的定義是:將具有一定形態(tài)的結(jié)構(gòu)元素B平移距離a后得到新的形態(tài)相同的結(jié)構(gòu)元素Ba包含于X,則記下這個a點,所有滿足此條件的a點所組成的集合稱為X被B腐蝕的結(jié)果[10]。用公式表達為:
膨脹操作是計算局部的最大值,而腐蝕操作則是計算該區(qū)域像素的最小值,兩運算是一對互為對偶的操作,即X被B腐蝕后的補集等于X的補集被B膨脹。膨脹是一種使邊緣向外部拓展的過程,可以用來填補目標圖像中小的凹洞,并將背景邊緣轉(zhuǎn)化成目標邊緣,從而使目標增大而背景縮小。腐蝕是一種去除不相關(guān)的邊緣點而使邊緣向內(nèi)收縮的過程,能夠消除目標圖像中細小的凸起,使得目標縮小而背景增大。通常情況下,最基本的腐蝕和膨脹兩種操作在針對布爾圖像和圖像掩碼的處理時已能滿足要求。然而,在處理灰度或彩色圖像時,往往需要一些額外的操作。于是,基于膨脹和腐蝕這兩種基本形態(tài)轉(zhuǎn)換能構(gòu)造出多種數(shù)學形態(tài)學運算簇,而開運算和閉運算是這個運算簇中最基本的兩個操作[11]。
開運算(Open)定義為先將圖像腐蝕然后再膨脹,即OPEN(X)=D(E(X))。開運算能夠去除孤立的小點、毛刺和小橋(即連通兩塊區(qū)域的小點),實現(xiàn)在纖細處分割大塊區(qū)域和平滑大塊區(qū)域邊緣的作用,而總的位置和形狀不變。閉運算(Close)定義為先將圖像膨脹然后再腐蝕,即 CLOSE(X)=E(D(X))[12]。閉運算能夠填平物體內(nèi)細小的孔洞,實現(xiàn)縫合細小的裂縫達到連接相互鄰近的物體和平滑邊緣的目的,而總的位置和形狀不變。開運算和閉運算也是一對互為對偶的操作。
任何數(shù)學形態(tài)學算法都由兩個基本問題組成:數(shù)學形態(tài)學運算和結(jié)構(gòu)元素的選?。?3]。數(shù)學形態(tài)學的定義使得數(shù)學形態(tài)學的運算規(guī)則已經(jīng)確定不變,所以形態(tài)結(jié)構(gòu)元素的選取決定了數(shù)學形態(tài)學算法的目的和效果。因此,結(jié)構(gòu)元素的確定和優(yōu)化便成為了研究數(shù)學形態(tài)學的熱點和難點。
形態(tài)結(jié)構(gòu)元素的選取問題可以分為兩個方面:結(jié)構(gòu)元素的尺寸和形狀。選擇的結(jié)構(gòu)元素的尺寸過小時,對于較大區(qū)域的凸起開運算不能有效地消除,而對于邊緣斷裂較大的情況閉運算不能有效地彌合;選擇的結(jié)構(gòu)元素的尺寸過大時,開運算會過度消除圖像原本為邊緣點的像素而造成假斷裂,閉運算會過度彌合圖像原本斷裂的像素點而造成干擾信息。所以,采用單一尺寸的結(jié)構(gòu)元素容易導致在對目標圖像進行邊緣提取時定位不夠準確,去噪效果不理想。另外,由于圖像的邊緣存在著某種約束關(guān)系,而圖像的噪聲是隨機生成的,在利用結(jié)構(gòu)元素對目標圖像進行度量時,在圖像的邊緣點附近總能夠找到一個幾何形態(tài)類似的邊緣點[14],所以,采用單一形態(tài)的結(jié)構(gòu)元素在對目標圖像進行邊緣提取時不能夠有效地保留圖像邊緣的細節(jié)信息。
針對采用單一尺寸或單一形態(tài)的結(jié)構(gòu)元素進行數(shù)學形態(tài)學邊緣提取時的不足之處,本文提出了一種基于多尺度多結(jié)構(gòu)數(shù)學形態(tài)學的圖像邊緣提取方法,即選取3種不同尺寸且關(guān)于中心對稱的多結(jié)構(gòu)元素對目標圖像進行邊緣提取處理。首先用兩種較大尺寸的結(jié)構(gòu)元素B1和B2對目標圖像進行開運算和閉運算處理,其次用另一種較小尺寸的結(jié)構(gòu)元素B3對目標圖像進行膨脹和腐蝕處理。用公式表示為:
根據(jù)上述算法,在CPU為Intel i5 2.4G、操作系統(tǒng)為Win7旗艦版的PC上,用配置了OpenCV 2.4.4的Visual Studio 2010分別對Lena(512×512像素)灰度圖和加入均方差為30的高斯噪聲圖像進行邊緣提取實驗。并且,為說明本文中基于多尺度多結(jié)構(gòu)數(shù)學形態(tài)學的邊緣提取算法的效果,將其與Canny邊緣提取算法進行仿真對比。
本文的邊緣提取算法實驗步驟如下:
(1)輸入Lena灰度圖,并加入均方差為30的高斯噪聲。
(2)對加入高斯噪聲后的圖像進行開運算和閉運算操作,達到濾波降噪的目的。其中,開運算和閉運算的結(jié)構(gòu)元素分別采用3×3和5×5的菱形結(jié)構(gòu)元素。
(3)利用公式(3)對經(jīng)過濾波降噪處理后的圖像進行邊緣提取。其中,B1和B2分別為3×3和5×5的菱形結(jié)構(gòu)元素,B3是1×1的正方形結(jié)構(gòu)元素。
實驗結(jié)果如圖1、圖2所示。
通過對比實驗結(jié)果可以看出:圖1中Canny算法提取的邊緣較為連續(xù),本文算法邊緣更為清晰突出,細節(jié)明顯且豐富;圖2中Canny算法受到噪聲嚴重干擾而幾乎無法檢測出圖像邊緣,本文算法對高斯噪聲有明顯的抑制作用。
本文針對傳統(tǒng)的邊緣提取算法抗噪能力差和定位精度低的特點,采用了數(shù)學形態(tài)學的方法對目標圖像進行邊緣提取,并且分析了不同尺寸和不同形狀的結(jié)構(gòu)元素對邊緣提取效果的影響,改進了傳統(tǒng)單一尺寸或單一形狀結(jié)構(gòu)元素的數(shù)學形態(tài)學處理算法,提出了多尺度多結(jié)構(gòu)數(shù)學形態(tài)學的邊緣提取方法。通過對比實驗驗證,本文算法提取的邊緣更明顯、更平滑、細節(jié)更豐富,并且具有很好的抗噪性。但是,本文算法復雜度較高,相較Canny算法處理時間長,邊緣較寬需要進行細化處理。
圖1 對未加噪聲的Lena圖像邊緣提取結(jié)果
圖2 對加入高斯噪聲的Lena圖像邊緣提取結(jié)果
[1]羅山.基于改進數(shù)學形態(tài)學的含噪圖像邊緣檢測[J].攀枝花學院學報,2013,30(4):121-124.
[2]李峰.基于數(shù)學形態(tài)學的圖像邊緣檢測及其在虹膜定位中的應用研究[D].長沙:中南大學,2009:5-10.
[3]肖大雪.淺析數(shù)學形態(tài)學在圖像處理中的應用[J].科技廣場,2013(5):10-19.
[4]朱培逸,劉紅晴.基于數(shù)學形態(tài)學圖像分割算法在水果分級中的應用[J].科學技術(shù)與工程,2013,34(13):10375-10379.
[5]張翔宇,楊玉孝.C_V模型和數(shù)學形態(tài)學的紅外圖像處理方法[J].激光與紅外,2014,44(1):30-34.
[6]俞哲.鋼珠瑕疵檢測算法的研究及FPGA實現(xiàn)[D].上海:復旦大學,2010:1-12.
[7]王慧鋒,戰(zhàn)桂禮,羅曉明.基于數(shù)學形態(tài)學的邊緣檢測算法研究與應用[J].計算機工程與應用,2009,45(9):223-226.
[8]程成.基于電磁掃描的高密度電路板故障器件檢測技術(shù)[D].西安:西安電子科技大學,2011:5-15.
[9]Gary Bradski,Adrian Kaebler.學習 OpenCV[M].于仕琪,劉瑞禎,譯.北京:清華大學出版社,2009:134-142.
[10]馮穎凌,王宏玉.數(shù)學形態(tài)學基礎及研究方向的探討[J].內(nèi)江科技,2008(12):37,66.
[11]龔俊亮.紅外弱小多目標實時檢測跟蹤技術(shù)研究[D].長春:中國科學院研究生院,2013:5-18.
[12]何家英,王家忠,孫晨霞,等.基于數(shù)學形態(tài)學和Canny算子的邊緣提取方法[J].計算機應用,2008,28(2):477-478.
[13]張黃群,于盛林,白銀剛.形態(tài)學圖像去噪中結(jié)構(gòu)元素選取原則[J].數(shù)據(jù)采集與處理,2008,23(增刊):81-83.
[14]王光玲.基于運動目標檢測與跟蹤視頻測速算法的研究[D].太原:太原理工大學,2009:1-25.