本站小編為你精心準(zhǔn)備了三維肝臟內(nèi)部可視化研究參考范文,愿這些范文能點(diǎn)燃您思維的火花,激發(fā)您的寫(xiě)作靈感。歡迎深入閱讀并收藏。
《電視技術(shù)雜志》2014年第十一期
1預(yù)處理工作
1.1肝臟的結(jié)構(gòu)與紋理分析肝小葉是肝臟的基本單元,肝小葉的立體形態(tài)一般呈六角形棱柱體,長(zhǎng)約2mm,寬0.1mm,其中以中央靜脈橫穿長(zhǎng)軸。本文在構(gòu)建肝臟基本模型時(shí),由于肝臟軟組織紋理是研究的重點(diǎn),所以只考慮肝臟體的基本構(gòu)造,而忽略肝小葉和血管的組成。而肝臟的紋理具有隨機(jī)特征,區(qū)域分布均勻,沒(méi)有明顯的周期性和結(jié)構(gòu)性。Markov隨機(jī)場(chǎng)模型認(rèn)為圖像中每一像素值只與其鄰域像素的取值有關(guān),通過(guò)像素的概率密度函數(shù)來(lái)定義紋理分布。因此采用Markov模型可以比較好地反映肝臟紋理的隨機(jī)特性。
1.2肝臟體的構(gòu)建對(duì)于肝臟體的構(gòu)建,首先在3dsmax里建立肝臟體的原型,目標(biāo)是獲得逼真的肝臟體模型,導(dǎo)出后綴為obj的模型文件,模型具有網(wǎng)格結(jié)構(gòu),如圖2所示。由于只有表面網(wǎng)格構(gòu)造,無(wú)法滿足內(nèi)部結(jié)構(gòu)的顯示以及后續(xù)復(fù)用工作的需要,所以先利用3DObjectConveter這款3D模型轉(zhuǎn)換工具,將obj文件轉(zhuǎn)換為ply文件,再導(dǎo)入TetGen庫(kù),該庫(kù)是德國(guó)Weierstrass實(shí)驗(yàn)室開(kāi)發(fā)的一個(gè)開(kāi)源項(xiàng)目,可以將表面網(wǎng)格模型轉(zhuǎn)換為四面體網(wǎng)格模型。四面體網(wǎng)格模型以ele文件和node文件形式保存。ele文件包含各個(gè)四面體四個(gè)連接頂點(diǎn)的索引信息,node文件則包含了各頂點(diǎn)的位置信息。本文構(gòu)建的肝臟四面體模型總共有61014個(gè)四面體,14633個(gè)頂點(diǎn)。
1.3體紋理的生成在傳統(tǒng)計(jì)算機(jī)圖形學(xué)中,紋理是一種數(shù)據(jù)采樣資源,一般為二維形式,通過(guò)紋理映射可以把二維紋理與三維表面的點(diǎn)相對(duì)應(yīng)。而體紋理則是定義在三維空間,以體素為基本單元。體紋理可以很好地反映物體內(nèi)部結(jié)構(gòu)信息,非常適合用于虛擬肝臟手術(shù)這種需要觀察物體內(nèi)部結(jié)構(gòu)并且對(duì)精度要求較高的場(chǎng)合。本文采用基于樣本的體紋理合成方法,所以需要合成一個(gè)樣本體紋理塊。首先需要一個(gè)具有比較高精度的數(shù)據(jù)源,本文選用美國(guó)數(shù)字化可視人體數(shù)據(jù)集,其來(lái)源于美國(guó)國(guó)立醫(yī)學(xué)圖書(shū)館的“可視人體計(jì)劃(VHP)”,選用里面的180張彩色肝臟切片圖作為數(shù)據(jù)源,其尺寸為600×630,如圖3a所示。接著要對(duì)切片圖進(jìn)行分割提取,分離出肝臟體部分,排除其他的組織器官。在輪廓分割方法上,采用opencv編程實(shí)現(xiàn),首先人工在圖片上指定幾個(gè)關(guān)鍵點(diǎn),接著對(duì)幾個(gè)關(guān)鍵點(diǎn)做Bezier曲線擬合,使得曲線更加光滑,如圖3b所示。Bezier曲線是一種應(yīng)用于二維坐標(biāo)的數(shù)學(xué)曲線,它通過(guò)控制曲線上的四個(gè)點(diǎn)(起始點(diǎn)、終止點(diǎn)以及兩個(gè)相互分離的中間點(diǎn))來(lái)創(chuàng)造、編輯圖形,隨著點(diǎn)有規(guī)律地移動(dòng),曲線將產(chǎn)生皮筋伸引一樣的變換,帶來(lái)視覺(jué)上的沖擊。分割的目標(biāo)在于盡可能多地包含肝臟區(qū)域部分,盡可能少地包含其他區(qū)域部分。分割好肝臟圖像后,參考文獻(xiàn)[1]的做法,以分割圖像為模版,分別在體紋理坐標(biāo)的x軸和z軸方向上擴(kuò)展,即先左右排列,再前后排列。其中相交的點(diǎn)的像素值則取平均值。這樣構(gòu)建的好處在于使得肝臟表面的紋理同內(nèi)部紋理有所不同,增加肝臟紋理的多樣性,更貼近現(xiàn)實(shí)中的肝臟紋理。體紋理以.vol文件形式保存,其頭文件信息包含了版本號(hào)(version)、紋理數(shù)組(texName[])、紋理塊尺寸(volSize)、通道數(shù)(numChannels)、每個(gè)通道位數(shù)(bytesPerChannel)等信息,如圖3c所示。
2基于復(fù)用計(jì)算的肝臟軟組織體紋理合成
合成肝臟軟組織體紋理是本文的主要研究?jī)?nèi)容。基于樣圖的紋理合成技術(shù)由于可以克服傳統(tǒng)紋理映射方法的缺點(diǎn),又避免了過(guò)程紋理合成調(diào)整參數(shù)的繁瑣,目前發(fā)展很快。2001年的SIGGRAPH會(huì)議上,Efros提出一種基于塊拼貼的紋理合成算法[5],通過(guò)查找誤差最小路徑實(shí)現(xiàn)各匹配塊的拼貼,對(duì)一些常見(jiàn)紋理取得了比較好的效果,該方法影響了后期許多的研究。總結(jié)來(lái)說(shuō),合成的基本單元可以是像素點(diǎn)或者像素塊,基于像素點(diǎn)的合成利于保持紋理的局部特性,但對(duì)全局特征的把握不好,并且合成的速度比較慢。基于像素塊的合成能夠保持紋理的全局特征,并且合成速度提高很多,但是在塊與塊之間的銜接拼合上會(huì)有過(guò)渡不自然的現(xiàn)象。鄰域的形狀可以是正方形或者L形[6]。目前,大多數(shù)的紋理合成方法都采用Markov模型,即紋理中任一位置的色彩只由其局部有限鄰域的情況決定。而鄰域搜索的效率往往是決定紋理合成效率的一個(gè)關(guān)鍵因素,鄰域搜索由于要在樣本里逐點(diǎn)或者逐塊搜索,計(jì)算量比較大。對(duì)于肝臟體紋理合成,本文構(gòu)建的肝臟體模型總共有61014個(gè)四面體,數(shù)據(jù)量非常大,因此本文考慮采用復(fù)用計(jì)算的方法,進(jìn)行基于像素塊的紋理合成,復(fù)用計(jì)算適用于大尺寸的紋理合成,比較適合合成肝臟紋理這樣數(shù)據(jù)量較大的場(chǎng)合。此外,復(fù)用計(jì)算適合合成結(jié)構(gòu)性不強(qiáng)的紋理類型,肝臟軟組織紋理屬于結(jié)構(gòu)性不強(qiáng)的紋理。本文參考了陳昕提出的二維平面的復(fù)用合成方法[8],并將其擴(kuò)展至三維空間,只在合成初始區(qū)域時(shí)采用鄰域搜索匹配像素塊,而合成剩余區(qū)域時(shí)則復(fù)用之前的結(jié)果,以減少計(jì)算量,提高合成的效率。
2.1初始區(qū)域的合成算法首先合成一個(gè)初始區(qū)域,因?yàn)猷徲蛩阉魇呛铣捎?jì)算中系統(tǒng)開(kāi)銷最大的部分,很大程度上決定了合成的速度和效率。所以本文只在合成初始區(qū)域時(shí)采用鄰域搜索,而在后期合成剩余區(qū)域時(shí)則復(fù)用已合成的部分,以達(dá)到節(jié)省系統(tǒng)開(kāi)銷的目的。具體實(shí)現(xiàn)上,參考文獻(xiàn)[9]的做法,先在樣本體紋理塊中按照塊體積大小做均勻的劃分,即所謂同“相位”紋理間隔排布,然后針對(duì)每個(gè)紋理塊,在樣本紋理塊中進(jìn)行鄰域搜索,求出可與其拼接的紋理塊的集合,匹配原則采用顏色差值的距離公式,分別計(jì)算RGB顏色的差值再取平方和的距離公式此外,為了增加紋理的隨機(jī)性,本文采用一種類似文獻(xiàn)[7]提出的經(jīng)典方法,對(duì)于當(dāng)前待合成空白區(qū)域,則其左邊的已合成塊的拼接塊集合中的所有塊往右位移一個(gè)單位,其他方向上的相鄰紋理塊也根據(jù)位置關(guān)系做類似的操作,最后再做集合的求交計(jì)算。由于均勻布?jí)K與空白區(qū)域填充可以并行進(jìn)行,所以該方法可以提高合成的速度,如圖4所示。對(duì)于紋理塊尺寸大小和重疊區(qū)域體積的確定,文獻(xiàn)[10]作了深入研究。主要思想是考察不同尺寸下紋理塊對(duì)于樣本紋理塊的全局特征以及周期性的反映程度。由于肝臟紋理沒(méi)有明顯的周期性,本文只考察對(duì)于全局特征的反映程度。文獻(xiàn)[10]針對(duì)黑白圖像主要考察其灰度直方圖,由于本文的數(shù)據(jù)源是彩色圖像,所以將計(jì)算轉(zhuǎn)換至RGB顏色空間,通過(guò)顏色差值來(lái)考察該尺寸下紋理塊對(duì)樣本全局特征的反映程度。所選紋理塊尺寸不能太大,否則可匹配的紋理塊數(shù)目太少,尺寸也不能太小,否則無(wú)法反映紋理的全局特征。實(shí)現(xiàn)上選取樣本紋理體積1/4的紋理塊作為劃分依據(jù)。而重疊區(qū)域體積的確定,文獻(xiàn)[10]主要考察特定寬度下對(duì)于相鄰兩個(gè)紋理塊的區(qū)分程度,對(duì)于肝臟這種隨機(jī)性比較強(qiáng)的紋理,不同尺寸下這種差異并不大,因此本文選取固定的重疊體積進(jìn)行計(jì)算,對(duì)實(shí)驗(yàn)結(jié)果影響并不大。
2.2剩余區(qū)域合成在合成剩余部分區(qū)域時(shí),則采用復(fù)用計(jì)算,從已合成的區(qū)域中選取合適的紋理塊,填充到剩余的待合成區(qū)域。參考文獻(xiàn)[8]的方法,將其擴(kuò)展至三維空間。逐步擴(kuò)大合成紋理塊體積,迭代完成整個(gè)紋理合成過(guò)程。合成剩余區(qū)域時(shí),重新計(jì)算合成紋理塊的尺寸,在已合成區(qū)域選擇紋理塊進(jìn)行填充。具體實(shí)現(xiàn)上,采用成倍增長(zhǎng)的方式,每次合成時(shí),將新的紋理塊尺寸設(shè)置為已合成區(qū)域長(zhǎng)寬高的各一半,即體積為已合成區(qū)域的1/8,當(dāng)已合成區(qū)域長(zhǎng)寬高都擴(kuò)大一倍后,當(dāng)前區(qū)域?qū)⒈辉O(shè)置為新的已合成區(qū)域,并且重新計(jì)算合成紋理塊的尺寸,開(kāi)始新一輪的復(fù)用操作,進(jìn)行下一步的合成。這種方式可以有效減小合成紋理塊的數(shù)目,同時(shí)又可以利用已有的合成結(jié)果,對(duì)于提高合成速度與效率很有幫助。由于本文已經(jīng)預(yù)先對(duì)紋理塊尺寸做了計(jì)算,能夠反映樣本的全局特性,并且在初始階段按照相位原則進(jìn)行了排布,所以在復(fù)用選塊操作時(shí),只要按照相位標(biāo)準(zhǔn)隨機(jī)選擇塊位置即可。
2.3重疊區(qū)域縫合在重疊區(qū)域像素的縫合上,采用類似“羽化”的縫合方法[10],即對(duì)重疊區(qū)域像素根據(jù)其到邊界的距離做色彩的插值計(jì)算。
2.4邊緣像素的處理最后一步是處理邊緣像素,在處理邊緣像素時(shí),先判斷當(dāng)前待合成的紋理塊是否大部分處于邊界外部,若在邊界外部的比例小于給定的閾值,則保留該塊在內(nèi)部的部分,舍棄在外部的部分,若在邊界外部的比例大于給定的閾值,則舍棄該塊,用“羽化”方法合成剩余部分,在這里CB和LB失去意義將其舍去,設(shè)K為邊界鄰近的已合成塊,則CA為K的邊界像素值,C則與當(dāng)前待合成像素到K邊界的距離LA有關(guān)。公式更改為C=CA*LA。實(shí)現(xiàn)中,取閾值為30%,可以比較好地判斷邊界分布情況。由于切割不是本文研究的主要內(nèi)容,采用了翟朝亮的切割算法[1]實(shí)現(xiàn)對(duì)肝臟體的切割。
3實(shí)驗(yàn)及結(jié)果分析
利用VisualC++和OpenGL在PC機(jī)上實(shí)現(xiàn)了上述算法,PC機(jī)的配置為Core2DuoE47002.6GHz的CPU,2Gbyte的RAM,NVIDIAGeForceGT430顯卡。所得到的肝臟效果圖如圖5所示。本文方法在合成紋理上時(shí)間消耗較小,內(nèi)存占用不大,可以滿足虛擬手術(shù)顯示的要求,統(tǒng)計(jì)信息見(jiàn)表1。
4小結(jié)
本文提出一種合成肝臟軟組織體紋理的方法,把二維的復(fù)用計(jì)算方法擴(kuò)展到三維,只在初始區(qū)域進(jìn)行鄰域搜索,而在合成剩余區(qū)域則迭代利用之前的結(jié)果。實(shí)驗(yàn)結(jié)果表明該方法能夠很大程度上提高合成效率,在虛擬手術(shù)實(shí)時(shí)可視化方面有一定的應(yīng)用價(jià)值。
作者:潘翔陳國(guó)棟單位:福州大學(xué)物理與信息工程學(xué)院