張 允, 焦 斌
(上海電機學院 電氣學院,上海 201306)
圖像分割[1],廣義來說,是根據圖像的灰度、顏色、紋理等某些特征或特征集合,利用相似性準則對圖像像素進行分組聚類,把圖像平面劃分成若干個具有某些一致性的不重疊區域。這使得不同區域間像素的特征存在突變,即具有非一致性,而同一區域中的像素特征是類似的,即具有一致性。目前圖像分割的方法[2]主要包括:基于閾值的分割、基于圖論的分割、基于區域的分割、基于能量泛函的分割和基于邊緣的分割等。
閾值法[3]的基本思想是先運用圖像的灰度特征來計算一個或多個灰度閾值,然后將圖像中每個像素的灰度值與閾值作比較,最后根據比較結果將像素分到合適的類別中。閾值處理技術,包括全局閾值、自適應閾值和最佳閾值等。閾值分割算法存在計算時間長、占用內存大等問題,Kapur等[4]最早對灰度圖像進行閾值分割采用了一維最大熵,但是該算法無法有效克服圖像噪聲的影響,Brink等[5]運用圖像的灰度信息和局部空間信息,提出二維熵閾值分割,得出的圖像結果較好,但是耗時較長。許多學者提出了改進算法,王文豪等[6]運用自適應中值濾波和改進的最大類間方差法(Otsu)算法,生成新的高、低閾值。王詩宇等[7]利用統計原理對圖像灰度值數據進行分析,提出改進Canny算子。于洋等[8]利用當前幀圖像的灰度級和當前幀圖像像素的鄰域灰度級構成二元組,結合自適應粒子群集算法,估計出圖像的最佳閾值。王福忠等[9]提出使用中值濾波得到掩膜圖像,再用所得的圖像與原始圖像做差得到一個區域,得出一個合適的閾值。劉翔[10]利用改進的螢火蟲的算法,選取最優值,降低了多閾值Otsu算法的時間。馬敬奇等[11]提出一種結合Canny算子和改進型Hough變換的邊緣定位方法。張曉麗[12]對差分進化算法作了改進,提出了改進二維最大熵圖像分割方法,該方法在執行時間與收斂性方面均得到較理想的分割效果。Wang[13]提出一種改進的基于粒子群優化算法的二維最大熵閾值分割方法,用于解決二維最大熵閾值分割可能導致的過分割問題。Dhieb[14]等在求解二維最大熵問題的過程中,成功地實現了粒子群優化算法,改進了收斂性,更好地保證了最優解的可重復性。本文針對復雜圖像分割時,存在計算量較大、用時過長等問題,提出基于Canny算子的二維最大熵閾值分割算法,通過實驗與二維最大熵閾值分割算法對比,結果表明,該算法具有一定的優越性。
采用一階導數局部極值法對邊緣進行檢測,因為在邊緣處,一階導數具有極值點。一階導數的局部極大值與圖像邊緣相對應,然而噪聲信號很容易影響到圖像的弱邊緣的檢測。Canny算子能很好的解決這種弊端[15],它是一種雙閾值檢測法,對色帶的強邊緣與弱邊緣的檢測有良好的效果。
設原始輸入圖像為f(x,y),首先用高斯函數作平滑運算,即平滑后的g(x,y)的梯度為
(1)
由卷積運算特性有


(2)
式中:G(x,y)為高斯函數。
采用高斯函數的圖像平滑處理,會使原圖像邊緣模糊化及寬度增加,在這引入非極大值點(Non-Maxima Suppression, NMS)對模糊邊緣進行銳化。NMS法能夠使邊緣變細,主要通過比較邊緣鄰接像素的梯度幅值,將梯度幅值小的點去掉,也就是梯度幅值的非極大值點被去除[16],這樣就可得到較細的邊緣。
由于噪聲與細紋的存在,圖像上存在假邊緣,可通過雙閾值算法去除。雙閾值算法選定t1和t2作為雙閾值且t2≈2t1,g1(i,j)與g2(i,j)這兩個雙閾值邊緣圖像就可獲得。高閾值法得到的g2(i,j)邊緣圖像具有間斷的輪廓,但是它的優點就是含有的假邊緣較少。然后對中間斷的邊緣輪廓進行處理,采用雙閾值算法對間斷的邊緣進行連接,當到達輪廓的端點時,該算法就會在g1(i,j)的鄰點位置上尋找連接點。通過此過程,算法不斷地將g1(i,j)中的邊緣進行收集,直到g2(i,j)中間斷的邊緣連接起來。
Canny算子邊緣檢測步驟如圖1所示。

圖1 Canny算子邊緣檢測步驟圖
首先引入熵的概念即二維最大閾值法的分割原理。將圖像分割后,對所得熵的和進行計算,再對熵的和進行判斷,這樣的話就能得到理想的最佳閾值。以二維灰度函數來表示所得圖像,像素點設為N×N,像素點的灰度值分為L個等級。首先對原始圖像的區域灰度求均值。在實際計算時,選定目標像素與相鄰像素為模板,以數據(i,j)表示對應坐標的像素點灰度值與其區域灰度均值,設ni,j是點灰度為i,區域灰度為j的像素點個數,pi,j為概率密度,則有
(3)
如圖2所示,橫坐標i表示點灰度值,縱坐標j表示區域灰度均值,由此建立圖像的二維灰度分布圖。

圖2 圖像二維灰度分布圖
(s,t)處表示分割的閾值,如圖2二維灰度分布圖就可以將其分為4個區域,即A,B,C,D這4個區域。其中,A區代表目標區域,B區為背景像素的分布區域,C區代表邊界像素點分布區域,D區為噪聲信號分布區域,A區與B區是我們所要分割的對象。為了達到目標區域與背景區域理想的分割效果,對其采用二維最大閾值法,得到最佳閾值。分別用A區和B區的概率進行歸一化處理,熵值具有可加性,則A區和B區的概率為

(4)
對離散二維熵定義為
i=1,2,…,s;j=1,2,…,t
(5)
則就可得到A區的二維熵
lgPA+HA/PA
(6)
又因為
(7)
所以B區的二維熵為
lgPB+HB/PB
(8)
忽略閾值分割中的噪聲和邊緣,令C區和D區的pi,j≈0,則C區:i=s+1,s+2,…,L;j=1,2,…,t;D區:i=1,2,…,s;j=t+1,t+2,…,L。可得
(9)
則
HB=lg(1-PA)+(HL-HA)/(1-PA)
(10)
熵的判別函數定義為
φ(s,t)=H(A)+H(B)=HA/PA+lgPA+
(HL-HA)/(1-PA)+lg(1-PA)=lg[PA(1-
PA)]+HA/PA+(HL-HA)/(1-PA)
(11)
對此,選取的最佳閾值滿足

(12)
在二維最大熵閾值分割算法中,計算HA(s,t)和HB(s,t)是主要部分,對于每一個(s,t),都要重新計算Ps t(s,t)和Hs t(s,t),會使計算復雜,耗時過長,而Ps t(s,t+1)和Hs t(s,t+1)可以利用以下遞推公式[17]

(13)
式中:
Hs t(s,t)+Hs(t+1)
(14)

對于固定的s,當t取1-L時,H(s,t)不需要重復計算了,但s從1取到L時,Ps(t+1)和Hs(t+1)存在重復計算。因此可以導出

Ps(t+1)+ps+1,p+1=
Hs(t+1)-ps+1,t+1lgps+1,t+1
(15)
運用Canny算子對圖像進行邊緣檢測,將得到的最優閾值代入到改進的二維最大熵算法中,根據圖像的邊緣信息,對圖像的背景部分進行整體閾值分割,分割效果不是很理想的部分進行局部分割,把整體閾值分割與局部分割結合起來。首先利用二維最大熵閾值分割算法得到圖像分割閾值(s,t)。然后運用Canny算子對圖像進行邊緣檢測,對圖像進行噪聲抑制,再對邊緣圖像分別取兩次不同閾值t1和t2,得到兩個新的分割圖像,圖像A和圖像B,圖像B的噪聲小、閾值較高,但丟失了一些有效的邊緣信息,而圖像A的噪聲較大、閾值較低,圖像有效信息較多。因此,在圖像B的基礎上,利用圖像A補充圖像B的邊緣信息。最后保持s不變,利用求得的閾值t2對圖像進行分割,得出最終的圖像。
運用Matlab軟件進行仿真實驗,結果如圖3~6所示。
由此可知,采用Canny算子對圖像進行分割,灰度圖像效果十分明顯,處理速度較快,但也丟失了一些有用的信息。利用二維最大熵閾值對圖像分割,處理速度較慢。而運用改進后的二維最大熵閾值分割方法得到的圖像效果最好,圖像輪廓完好,細節信息也比較明顯,且用時較少,圖像分割效果較顯著。

圖4 二維最大熵閾值分割圖像用時(用時23.687 s)

圖5 Canny算子邊緣檢測圖像用時(用時0.879 s)

圖6 改進算法分割圖像用時(用時3.686 s)
圖像分割[18]是把圖像分成若干個特定的、具有獨特性質的區域并提出感興趣目標的技術和過程。為解決傳統圖像分割中計算復雜、耗時較長、圖像細節信息不完整和分割精度不高等問題,提出基于Canny算子的二維最大熵閾值分割算法。通過實驗驗證,本文算法具有一定的優勢,有效地解決了問題。因此,基于Canny算子的二維最大熵閾值分割算法確實可行。
[1] 單春芝.基于形態學策略的高分辨率遙感影像道路提取方法研究[D].山東:山東科技大學,2011.
[2] 孫國強.基于計算機圖像處理的人眼球變化識別系統[D].沈陽:沈陽理工大學,2008.
[3] 戴珊,李廣軍.結合近鄰傳播聚類的自適應圖像分割[J].計算機科學,2016,43(6A):191-193.
[4] KAPUR J N,SAHOO P K., WONG A K C. A new method for gray-level picture thresholding using the entropy of the histogram [J].Computer Vision,Graphics,and Image processing,1985,29(3):273-285.
[5] BRINK A D. Thresholding of digital images using two-dimensional entropies [J]. Pattern Recognition,1992,25(8):803-808.
[6] 王文豪,姜明新,趙文東.基于Canny算子改進的邊緣檢測算法[J].中國科技論文,2017,12(8):910-915.
[7] 王詩宇,林滸,孫一蘭,等.一種改進的Canny算子在機器人視覺系統中的應用[J].計算機系統應用,2017,26(3):144-149.
[8] 于洋,孔琳,虞闖.自適應粒子群集優化二維OSTU的圖像閾值分割算法[J].電子測量與儀器學報,2017,31(6):827-832.
[9] 王福忠,尹凱凱.一種基于中值濾波的局部閾值分割算法[J].電子測量技術,2017,40(4):162-166.
[10] 劉翔. 多閾值OTSU快速算法的研究[D].吉林:吉林大學,2017.
[11] 馬敬奇,盧亞,李柳瓊,等.基于Canny算子和改進型Hough變換的邊緣定位方法[J].自動化與信息工程,2017,38(3):32-36.
[12] 張曉麗.基于改進差分進化算法的二維最大熵圖像分割[J].自動化技術與應用,2016,35(6):69-72,76.
[13] WANG F C. An Improved 2-D Maximum Entropy Threshold Segmentation Method Based on PSO[C]// 2nd International Congress on Image and Signal Processing. Tianjin, China :IEEE, 2009:1-5.
[14] DHIEB M, MASMOUDI S, MESSAOUD M B, et al. 2-D entropy image segmentation on thresholding based on particle swarm optimization (PSO)[C]// International Conference on Advanced Technologies for Signal and Image Processing. Sousse, Tunisia:IEEE, 2014:143-147.
[15] 趙連軍.基于單目視覺的目標識別與定位研究[D].北京:中國科學院大學,2014.
[16] KODAMA A, NISHI TI. Petri net representation and reachability analysis of 0-1 integer linear programming problems[J]. Information Sciences,2017,400-401:157-172.
[17] ZHANG X M ,ZHANG A L,ZHENG Y B,et al. Improved two-dimensional maximum entropy image thresholding and its fast recursive realization[J].Computer Science,2011,44(4):278-286.
[18] 李冬.基于FPGA的數字圖像處理的研究[D].安徽:安徽理工大學,2009.