姜玲燕,李 俊,王嘉琦
(1.蘇州幼兒師范高等??茖W(xué)?;A(chǔ)部,江蘇 蘇州 215000;2.飛依諾科技(蘇州)有限公司,江蘇 蘇州 215000;3.南京師范大學(xué)外國語學(xué)院,江蘇 南京 210097)
圖像中均會產(chǎn)生圖像邊緣,圖像邊緣包含了物體形狀、陰影、圖像突變部分以及圖像紋理等豐富的信息,圖像邊緣信息也是各類圖形圖像軟件識別、理解以及處理圖像的基礎(chǔ)。目前,圖像邊緣提取已經(jīng)廣泛應(yīng)用于圖像分割、醫(yī)學(xué)造影、數(shù)字圖像壓縮、光柵圖像矢量化、圖像識別等領(lǐng)域中,由于各行各業(yè)對于圖像處理的要求以及評價標(biāo)準(zhǔn)不一致,沒有一種邊緣檢測算法完全適用于所有情況。文獻(xiàn)[2-3]詳述了各種邊緣檢測的相關(guān)方法,常見的算子有Prewitt算子、Roberts算子、Laplacian算子、Sobel算子、Canny算子[1]等,此類算子是基于圖像像素梯度進(jìn)行邊緣提取,基于遺傳算法、松弛法、蟻群算法等提取的圖像邊緣效果較好,但是算法較為復(fù)雜,小波變換等則是以信號處理為基礎(chǔ)的邊緣提取技術(shù)。本文從邊緣提取算法的空間和時間復(fù)雜度以及數(shù)據(jù)的有效性,利用數(shù)學(xué)形態(tài)法[4-6]對Canny算子進(jìn)行改進(jìn)。實驗表明,本算法普遍適用于灰度圖和RGB圖像的邊緣提取。
本文的圖像邊緣檢測算法分為三個步驟,即邊緣預(yù)處理、邊緣提取以及邊緣優(yōu)化,具體如圖1所示。
圖1 算法流程圖
(1)圖像預(yù)處理:運(yùn)用高斯函數(shù)對圖像進(jìn)行去噪,即去除圖像在數(shù)字化過程中所產(chǎn)生的干擾信號,從而提高后期圖像處理的精度;
(2)初步提取圖像邊緣:利用一階偏導(dǎo)有限差分,計算圖像全局梯度的幅值和方向,并對圖像梯度進(jìn)行非極大值抑制,最后根據(jù)設(shè)定的高低閾值檢測和連接邊緣;
(3)邊緣顏色信息提?。焊鶕?jù)步驟2,分別提取R、G、B三個顏色通道的邊緣,然后合成為一個邊緣。
經(jīng)過上述步驟可以得到灰度圖或RGB圖像的邊緣信息,根據(jù)已提取的圖像邊緣信息,可以分兩步對邊緣進(jìn)行優(yōu)化:
(1)利用數(shù)學(xué)形態(tài)法細(xì)化重疊的邊緣,從而減少邊緣數(shù)據(jù)量;
(2)利用數(shù)學(xué)形態(tài)法連接斷裂的邊緣,從而增強(qiáng)邊緣連通性。
圖像邊緣是指圖像像素灰度值或RGB圖像中某一顏色分量呈現(xiàn)階躍型或者屋脊?fàn)钭兓南袼丶?,其主要分為屋頂狀和階梯狀邊緣[7],如圖2所示。邊緣檢測的本質(zhì)是分離圖像中的目標(biāo)與背景,從而突出圖像的目標(biāo)部分。
圖2 圖像邊緣類型
Canny算子的主要步驟描述如下:
(1)對原始圖像進(jìn)行去噪
由于圖像的邊緣和噪聲均屬于高頻分量,一些邊緣檢測算子往往很難分辨噪聲和圖像邊緣,而誤將噪聲當(dāng)成邊緣信號。因此在對圖像進(jìn)行邊緣檢測之前,Canny算子先利用高斯函數(shù)對圖像進(jìn)行了去噪處理,從而確保邊緣提取的準(zhǔn)確性,圖3是高斯分布,高斯函數(shù)如式1所示:
其中,圖像的平滑度隨著?值的增大而增高,?越大,濾波器頻帶越寬,圖像越平滑,如圖3所示。
圖3 高斯分布曲線
(2)計算圖像像素梯度幅值和方向
圖像邊緣檢測的本質(zhì)是檢測出灰度或顏色分量呈現(xiàn)突變的像素,并將這些像素點作為邊緣點。邊緣點像素梯度呈現(xiàn)屋頂狀或階梯性變化,因此計算圖像全局梯度是Canny 算子中后續(xù)工作的依據(jù)。由于數(shù)字圖像中邊緣點X的梯度方向并不完全與其鄰域方向相吻合,也由于實際數(shù)字圖像中的像素點是二維矩陣,邊緣點X的梯度方向兩側(cè)的點是一個亞像素點Y,因此就需要用一階偏導(dǎo)的有限差分來得到最接近X點梯度方向兩側(cè)的像素值或Y點的梯度值。
(3)對圖像梯度幅值進(jìn)行非極大值抑制
部分檢測環(huán)境下所說的非極大值抑制指的是檢測中心點的值是否是某一個鄰域內(nèi)的最大值,而Canny算子中的非極大值抑制則是針對圖像梯度而言,即尋找局部梯度幅值最大的像素點。根據(jù)John Canny在1986年的定義[1],若圖像上某一點X滿足以下兩個條件則為需要增強(qiáng)的邊緣點,否則為需要抑制的非邊緣點:沿著X梯度法線方向的兩個鄰域的梯度值小于點X的梯度,且這兩個鄰域點的角度差不大于45°;點X的八鄰域的梯度大小均小于某一特定值[8]。
(4)利用雙閾值法檢測和連接邊緣
Canny算子通過設(shè)定一個高閾值H來提取有限的強(qiáng)邊緣,將對比明顯的背景與目標(biāo)分開,設(shè)定一個低閾值L來控制邊緣的連接,從而得到單像素的邊緣。具體步驟如下:
將梯度值小于L的像素灰度設(shè)置為0,得到圖像a;由于L值較小,因此圖像a保留了大量的細(xì)節(jié)信息。將梯度值高于H的像素灰度值設(shè)置為1,得到圖b;由于圖像b的閾值較高,去除了大部分噪聲的同時也損失了部分邊緣信息,導(dǎo)致部分邊緣的斷裂或缺失。因此為了得到更加精準(zhǔn)的邊緣,以圖b為基礎(chǔ),圖a為補(bǔ)充連接邊緣。這種做法能有效檢測圖像的強(qiáng)邊緣而刪除虛假邊緣。不同的圖像,高低閾值的選取也不一樣,若L設(shè)置得過高則會丟失一些細(xì)小邊緣; 若H設(shè)置得過低會漏檢一些真實邊緣。因此高低閾值的選取十分重要,應(yīng)根據(jù)不同的圖像以及所需邊緣的精確度調(diào)整高低閾值。
對灰度圖進(jìn)行邊緣提取時只需要提取圖像的邊緣位置信息及灰度值,而RGB圖像的邊緣提取工作則需要提取邊緣點的位置信息及RGB信息作為圖像特征信息,這些特征信息的集合對于圖像的采集、處理都具有重要的意義。
通常人們根據(jù)一定的彩色模型對RGB圖像進(jìn)行處理,彩色模型是指顏色空間的集合,而這個集合中的所有顏色都是通過某一個彩色模型計算所得,即根據(jù)若干個顏色分量計算得到顏色域中的所有顏色。由于紅、綠、藍(lán)三色是自然界中所有顏色的三基色,根據(jù)圖像的RGB值,設(shè)定的RGB模型如公式2所示:
本文為了獲取圖像邊緣的細(xì)節(jié)信息,利用Canny算子分別提取RGB圖像中紅、綠、藍(lán)三種顏色的邊緣,并將提取的三個邊緣圖層疊,得到最終的邊緣圖,如圖4所示:左邊三幅圖分別為紅、綠、藍(lán)三種顏色的邊緣,最右邊為三張圖片疊加在一起后的最終邊緣。由R、G、B三基色的邊緣所合成的邊緣圖,保留了RGB圖像中各顏色分量的邊緣細(xì)節(jié)信息。但合成的相鄰邊緣之間間隔過小,增加了邊緣提取的數(shù)據(jù)冗余度,因此需要對邊緣點進(jìn)行后處理。
圖4 R,G,B三個通道分別提取的邊緣以及合成的邊緣圖
為便于圖像處理,需要降低圖像邊緣的數(shù)據(jù)冗余度,因此需要對原始圖像邊緣進(jìn)行細(xì)化。
邊緣細(xì)化主要是在保證圖像邊緣幾何、拓?fù)浣Y(jié)構(gòu)不變的情況下,從原始邊緣上尋找那些滿足條件的邊緣點,并標(biāo)記為可刪除,最后將這些滿足條件的點從原始邊緣上“剝離”,最終得到一個像素的細(xì)化邊緣。但這些算法要求遍歷次數(shù)多,容易過度“剝離”,因此并不適用于所有圖像的邊緣細(xì)化。
本文借鑒Serra提出的數(shù)學(xué)形態(tài)法[9],對提取的圖像邊緣進(jìn)行細(xì)化處理。數(shù)學(xué)形態(tài)法以集合論為基礎(chǔ),應(yīng)用在圖像處理領(lǐng)域便是將一幅圖像中的所有像素點稱為一個集合,圖像中的像素點及探針結(jié)構(gòu)元素(本文一般為可移動的集合)則作為集合中的元素,利用設(shè)定好的探針在圖像集合中的位移,進(jìn)行各類集合運(yùn)算,變換得到一個新的圖像集合。同理,利用數(shù)學(xué)形態(tài)法優(yōu)化圖像邊緣時,將Canny算子提取的邊緣點陣作為一個集合,與預(yù)先設(shè)定的探針進(jìn)行交、并、補(bǔ)等運(yùn)算得到優(yōu)化后的邊緣。
數(shù)學(xué)形態(tài)法由組代數(shù)運(yùn)算子組成,基礎(chǔ)運(yùn)算主要有腐蝕、膨脹運(yùn)算(先腐蝕再膨脹),閉運(yùn)算(先膨脹再腐蝕)等。集合X分別被探針S進(jìn)行上述的操作可表示為式(3)至式(6):
其中X為給定圖像的像素點集,S為探針。腐蝕操作用于消除邊緣中的冗余部分;擴(kuò)張操作用于連接圖像斷裂的邊緣,增強(qiáng)邊緣連通性;開操作使提取的邊緣更加平滑;閉操作在平滑邊緣的同時還連接局部斷裂的邊緣。以上四種數(shù)學(xué)形態(tài)法的基本運(yùn)算可通過推導(dǎo)組合成各種不同的圖像處理算法。數(shù)學(xué)形態(tài)法可利用腐蝕操作細(xì)化圖像邊緣,也可針對不同的情況設(shè)定不同的探針增強(qiáng)圖像邊緣連通性等。
本文設(shè)計的探針如圖5所示,設(shè)定的膨脹探針(圖5a)和侵蝕探針(圖5b),其中A代表圖像邊緣點,膨脹探針每旋轉(zhuǎn)45°便得到一個新的膨脹探針,旋轉(zhuǎn)360°以后得到了7個不同的膨脹探針。利用數(shù)學(xué)形態(tài)法優(yōu)化邊緣信息的算法概括如下:先用膨脹探針對Canny算子提取的邊緣進(jìn)行膨脹,得到連通性更好但冗余度較高的邊緣(稱為O),再利用侵蝕探針對O進(jìn)行腐蝕得到數(shù)據(jù)量較小的邊緣。
圖5 膨脹和侵蝕的探針
本文采用VC++6.0和OpenGL在PC機(jī)上實現(xiàn)了邊緣提取的優(yōu)化算法,實驗結(jié)果表明,本算法普遍適用于RGB圖和灰度圖的邊緣提取,并且提取的邊緣相對封閉,數(shù)據(jù)量較原始邊緣數(shù)據(jù)量小。將高斯模糊、高閾值、低閾值三個參數(shù)分別設(shè)置為0.4、0.9、0.4,且遍歷原始邊緣圖一次所得到邊緣提取效果如圖6所示。圖7為蛋黃邊緣提取的局部放大圖,可見,優(yōu)化后的算法所提取的數(shù)據(jù)量明顯減小(具體數(shù)據(jù)如表1所示)。同時,根據(jù)改進(jìn)前后的邊緣分別對圖像進(jìn)行重建(如圖8所示):根據(jù)原始Canny算子提取邊緣的重建圖有部分顏色溢出,而優(yōu)化后的邊緣更利于圖像重建,其連通性更強(qiáng)。
圖7 蛋黃邊緣局部放大圖:Canny算子提取邊緣(a),優(yōu)化后邊緣(b)
圖8 邊緣改進(jìn)前后重建的光柵化圖像比較
表1 圖6中各項數(shù)據(jù)統(tǒng)計
圖6 圖像邊緣提取實例
本文提出一種利用數(shù)學(xué)形態(tài)法中的四種基本運(yùn)算進(jìn)行推導(dǎo)組合優(yōu)化Canny算子提取圖像邊緣信息的算法,并對算法進(jìn)行了驗證。今后考慮在此算法基礎(chǔ)上,繼續(xù)進(jìn)行數(shù)據(jù)量和算法效率的優(yōu)化,并將其運(yùn)用于圖像識別、圖像壓縮、圖像矢量化[9]等各類圖像處理領(lǐng)域。
深圳信息職業(yè)技術(shù)學(xué)院學(xué)報2022年1期