喻建鋒,呂毅斌,房巾莉,王櫻子
(1.昆明理工大學(xué) 理學(xué)院,云南 昆明 650500;2.昆明理工大學(xué) 計(jì)算中心,云南 昆明 650500)
圖像分割,即把想研究的目標(biāo)從圖像中分割出來(lái),得到相對(duì)應(yīng)的邊界。在臨床診斷、病理分析、手術(shù)計(jì)劃和影像處理等實(shí)踐領(lǐng)域有著廣泛的研究和應(yīng)用價(jià)值。但是由于圖像格式不同、解剖結(jié)構(gòu)復(fù)雜和圖像邊緣不清晰等因素,實(shí)現(xiàn)圖像分割還是有很多問(wèn)題。當(dāng)下,還找不到一種統(tǒng)一的方法能夠解決不同的醫(yī)學(xué)圖像分割問(wèn)題,許多國(guó)內(nèi)外學(xué)者就各自遇到的種種問(wèn)題,提出了許多不同的分割方法:基于閾值的分割方法[1-2]、基于區(qū)域的分割方法[3-5]、基于邊界的分割方法[6-7]和基于某種特定理論的分割方法[8-9]。
Osher和Sethian[10]在1988年得出的水平集算法,是將二維閉合曲線的演化問(wèn)題轉(zhuǎn)變?yōu)槿S空間曲面演化的水平集函數(shù)的隱含方式來(lái)求解,這種分割方法計(jì)算出的結(jié)果較穩(wěn)定,所以在圖像分割領(lǐng)域,這種方法被廣泛采用。
Chan和Vese[11]將水平集方法和Mumford-Shah[12]模型進(jìn)行結(jié)合,得出了C-V水平集模型,這個(gè)模型充分利用了圖像的全局信息,所以得到的分割結(jié)果也較為精確。
但這個(gè)模型在求解時(shí)所需迭代次數(shù)過(guò)多。因此,李俊等[13]提出了對(duì)水平集方法魯棒初始化的雙向快速步進(jìn)法,李傳龍[14]提出的窄帶快速區(qū)域水平集C-V模型圖像分割方法,都大大減少了計(jì)算量。
文中提出一種基于Canny算子的C-V水平集模型,并應(yīng)用于醫(yī)學(xué)圖像的目標(biāo)分割。通過(guò)對(duì)原始圖像進(jìn)行預(yù)處理,使圖像邊界信息更加明確,再利用C-V水平集算法得到更好的分割效果,提高了分割性能。
水平集算法(level set method)是Osher和Sethian等在1988年提出來(lái)的一種幾何變形模型。該模型可用來(lái)處理復(fù)雜的幾何體,能應(yīng)對(duì)圖形在變化過(guò)程中的拓?fù)浣Y(jié)構(gòu)變化??梢员砻魉郊P褪且环N有效的隨時(shí)間變化的物體建模方法。
定義函數(shù)φ(x,t) (t表示時(shí)間),若φ(x,t) =0時(shí),該函數(shù)就能表示出運(yùn)動(dòng)的分界面Γ,而x=x(x1,x2,…,xn)∈Rn,所以Level Set方程φ具有以下性質(zhì):
(1)
在任意時(shí)間下,邊界Γ(t)的位置都可以由φ(x,t) =0得到,且φ(x,t) 滿足偏微分方程。
即:
(2)
C-V水平集模型不需要圖像局部梯度信息,它是利用最小化能量函數(shù)來(lái)得出圖像輪廓曲線。一條閉合的邊界C將Ω的原始圖像I(x,y)劃分成目標(biāo)、背景2個(gè)區(qū)域C1,C2,且C1,C2分別為兩個(gè)區(qū)域的平均灰度。能量函數(shù)定義為:
E(C,C1,C2)=μLength(C)+
(3)
其中,Length(C)是閉合輪廓線C的長(zhǎng)度;μ≥0,λ1,λ2>0是對(duì)應(yīng)各能量項(xiàng)下的權(quán)重系數(shù)。
若閉合輪廓線不在兩個(gè)區(qū)域的邊界上時(shí),E(C,C1,C2)達(dá)不到最小值;反之E(C,C1,C2)可取最小值。繼續(xù)把式3進(jìn)行優(yōu)化,就可得出未知數(shù)C1,C2及最終的輪廓線C的位置。
即:
(4)
C-V水平集模型前提是圖像要分片光滑,為了將E(C,C1,C2)規(guī)范化,引入Heavisirle函數(shù)H(z)和Dirac函數(shù)δ(z)。使用水平集函數(shù)φ的零水平集φ=0來(lái)表示C,Heavisirle函數(shù)H(z)用來(lái)劃分演化區(qū)域,Dirac函數(shù)δ(z)用來(lái)限定演化的取值必須在零水平集函數(shù)的周圍,則:
Length(C)=Length(φ=0)=
(5)
(6)
(7)
所以,能量函數(shù)改寫成:
E(φ,C1C2)=
(8)
待分割圖像I(x,y)的水平集函數(shù)可寫成:
I(x,y)=C1H(φ(x,y))+C2(1-H(φ(x,y)))
(9)
利用歐拉-拉格朗日法對(duì)式8進(jìn)行求解,可得到用水平集函數(shù)φ表示的偏微分方程[15]:
(10)
Canny算子應(yīng)用在圖像上是針對(duì)圖像的一維邊緣,對(duì)階躍型邊界的檢測(cè)模板形狀與高斯函數(shù)的一階導(dǎo)數(shù)類似。
利用二維高斯函數(shù)的圓對(duì)稱性和可分解性,很容易計(jì)算出任意方向上的高斯函數(shù)方向?qū)?shù)與圖像的卷積。所以,選取高斯函數(shù)的一階導(dǎo)數(shù)作為階躍邊緣的次最優(yōu)檢測(cè)算子來(lái)進(jìn)行邊緣檢測(cè)[16-17]。二維高斯函數(shù)數(shù)學(xué)表達(dá)式為:
(11)
原圖像為I(x,y),經(jīng)過(guò)高斯平滑后的圖像為:
(12)
對(duì)平滑后的圖像求一階導(dǎo)數(shù),并將結(jié)果寫成梯度矢量的形式:
(13)
其中,Gx(x,y,σ),Gy(x,y,σ)是一階偏導(dǎo)數(shù)。
(14)
用Canny算子處理結(jié)果gxy(x,y)來(lái)代替曲線平面(x,y),則水平集函數(shù)φ的零水平集φ=0改寫為φ(gxy(x,y)),再用經(jīng)過(guò)高斯平滑后的圖像g(x,y)代替?zhèn)鹘y(tǒng)的C-V水平集算法中的原圖I(x,y),將替換后的解析式代入式3可以得到新的能量函數(shù)。
即:
E(C,C1C2)=μLength(C)+λ1
(15)
利用上文的分析和求解,可以得到一個(gè)新的用水平集函數(shù)φ表示的偏微分方程:
(16)
Canny算子用在圖像分割上,充分降低了噪聲影響對(duì)分割的精度,并將原圖用Canny算子處理后的結(jié)果來(lái)代替,使邊緣信息更加明確,分割所得到的結(jié)果也就更加精確。
利用該模型進(jìn)行醫(yī)學(xué)圖像分割,實(shí)際上就是要求出式16中偏微分方程的解φ,再取它的零水平集就是所要的分割結(jié)果。下面將式16中的偏微分方程轉(zhuǎn)化為差分形式。
(17)
則式16中的偏微分方程可以離散成:
(18)
(19)
為了驗(yàn)證改進(jìn)算法的有效性,實(shí)驗(yàn)采用人體三個(gè)不同器官的CT圖像來(lái)進(jìn)行分割處理,參數(shù)選取為:λ1=λ2=1,輪廓長(zhǎng)度系數(shù)μ=0.01×255×255,時(shí)間步長(zhǎng)Δt=1,像素間距h=1,標(biāo)準(zhǔn)偏差σ=0.2,分割結(jié)果如圖1~圖3所示。
圖1 肺部CT圖像在不同算法下的分割結(jié)果
圖2 腦部CT圖像在不同算法下的分割結(jié)果
圖3 肝臟CT圖像在不同算法下的分割結(jié)果
從上述分割效果來(lái)看,采用改進(jìn)算法相對(duì)于傳統(tǒng)的C-V算法來(lái)講,可以得到更明確的圖像邊界,包括一些細(xì)微的邊界也能清晰地分割出來(lái),達(dá)到理想的分割效果。
文中提出了基于Canny算子的C-V水平集模型,水平集演化曲面用Canny算子處理結(jié)果去代替,原圖像先進(jìn)行平滑處理,不僅分割結(jié)果更精確,而且減少了噪聲對(duì)分割的干擾。實(shí)驗(yàn)結(jié)果表明,該方法具有普遍性,自動(dòng)化程度高,不用對(duì)每一幅圖像給定初始輪廓,從而提高了分割速度,拓展了使用范圍。同時(shí),分割目標(biāo)可以被很好地分割出來(lái)。但由于圖像種類很多,該方法對(duì)有些圖像的應(yīng)用效果不是很明顯,日后還需完善,使算法更具普遍性。