專利名稱:一種基于gpu的腹部臟器三維可視化方法
技術(shù)領(lǐng)域:
本發(fā)明屬于醫(yī)學(xué)圖像處理技術(shù)領(lǐng)域,具體涉及一種基于GPU的腹部臟器三維可視化方法。
背景技術(shù):
醫(yī)學(xué)影像三維可視化技術(shù)是指基于科學(xué)計(jì)算可視化技術(shù),從一系列二維斷層醫(yī)學(xué)圖像中重建出三維圖像,利用計(jì)算機(jī)顯示并完成三維圖像操作的技術(shù)。首先,對(duì)CT、MRI等醫(yī)學(xué)體數(shù)據(jù)進(jìn)行三維重建得到三維模型,對(duì)體數(shù)據(jù)的繪制結(jié)果從各個(gè)方向進(jìn)行投影顯示,便于醫(yī)生從不同方向?qū)θ梭w內(nèi)部結(jié)構(gòu)進(jìn)行觀察,能輔助醫(yī)生對(duì)感興趣區(qū)域或感興趣器官的大小形狀和空間位置獲得定量描述,幫助醫(yī)生了解復(fù)雜的解剖細(xì)節(jié),提供直觀的視覺印象。在此基礎(chǔ)上結(jié)合實(shí)際臨床應(yīng)用,實(shí)現(xiàn)計(jì)算機(jī)與用戶的交互,對(duì)可視化結(jié)果進(jìn)行任意平面切害I],可以幫助實(shí)現(xiàn)手術(shù)模擬、手術(shù)規(guī)劃和虛擬內(nèi)窺鏡等輔助診斷操作。提高醫(yī)生診斷的準(zhǔn)確率和醫(yī)院的工作效率。人體內(nèi)部結(jié)構(gòu)十分復(fù)雜,通常醫(yī)生無法觀察到手術(shù)進(jìn)行的實(shí)際情況,而且手術(shù)具有高危險(xiǎn)性,不能預(yù)先在人體上進(jìn)行模擬,利用可視化技術(shù),在重構(gòu)出的三維圖像基礎(chǔ)上進(jìn)行計(jì)算機(jī)模擬,可以設(shè)計(jì)、選擇最佳手術(shù)方案。還可以在手術(shù)過程中對(duì)手術(shù)進(jìn)行情況在屏幕上予以監(jiān)視,使醫(yī)生們做到心中有數(shù),從而提高手術(shù)的成功率。其次,目前國內(nèi)多數(shù)醫(yī)院仍采用傳統(tǒng)的膠片形式幫助醫(yī)生診斷,大量的膠片不但存儲(chǔ)是很大問題,也是不小的開支。實(shí)現(xiàn)醫(yī)院數(shù)字化,不但方便醫(yī)生診斷、醫(yī)院管理,更能節(jié)約開支。因而醫(yī)學(xué)圖像三維可視化技術(shù)對(duì)于促進(jìn)圖像處理和可視化技術(shù)的發(fā)展和應(yīng)用將起到積極的推動(dòng)作用,研究并實(shí)現(xiàn)二維醫(yī)學(xué)圖像的三維可視化,具有重要的價(jià)值。醫(yī)學(xué)數(shù)據(jù)可視化算法分為兩大類,基于構(gòu)造中間幾何圖元的面繪制算法和體繪制算法。面繪制需要先從體數(shù)據(jù)中重建物體的表面模型,然后利用傳統(tǒng)圖形學(xué)技術(shù)及硬件實(shí)現(xiàn)表面的繪制與顯示;而體繪制則直接以體素為基本單元,應(yīng)用視覺原理,通過對(duì)體數(shù)據(jù)重新采樣來合成產(chǎn)生三維圖像。面繪制是從3D數(shù)據(jù)場(chǎng)中抽取有意義和直觀信息的一種重要手段。它實(shí)際上是把體數(shù)據(jù)轉(zhuǎn)換成一種逼近面表示,從而可以進(jìn)一步利用計(jì)算機(jī)圖形學(xué)技術(shù),甚至已有的硬件加速技術(shù)完成感興趣信息的提取。由于它借助于面表不這樣一個(gè)中間轉(zhuǎn)換過程,而不是直接把體數(shù)據(jù)投向屏幕進(jìn)行繪制,有時(shí)我們又稱之為間接體繪制。這種三維幾何表達(dá)的模型最常用的就是表面模型,一般以平面片特別是三角面片來逼近表示。面繪制重建的方法可分為基于輪廓的表面重建和基于體素的表面重建,基于體素的表面重建最具代表性的是Cuberille 算法,Marching Cubes 算法和 Dividing Cubes 算法。體繪制是以某種方式將整個(gè)數(shù)據(jù)場(chǎng)半透明地投影到2D屏幕上,并不借助中間幾何圖形。直接由三維數(shù)據(jù)場(chǎng)產(chǎn)生屏幕上的二維圖像。這種算法能產(chǎn)生三維數(shù)據(jù)場(chǎng)的整體圖像,包括每一個(gè)細(xì)節(jié),并具有圖像質(zhì)量高、便于并行處理等優(yōu)點(diǎn)。其主要問題是,計(jì)算量很大,且難以利用傳統(tǒng)的圖形硬件實(shí)現(xiàn)繪制,因而計(jì)算時(shí)間較長(zhǎng)。目前應(yīng)用于醫(yī)學(xué)體數(shù)據(jù)的體繪制算法主要有基于圖像空間的光線投射(Raycasting)算法,基于物體空間掃描的派射(Splatting)算法,錯(cuò)切-變形(shear_warp)算法,硬件輔助的三維紋理映射(hardware-assisted 3D texture mapping)算法。體繪制方法都可以通過積分函數(shù)來進(jìn)行計(jì)算,光線投射算法是一種以圖像為序的直接體繪制方法,最早由M.Levoy于1988年提出,也是體繪制中最基本和最靈活的算法。其基本思想及特點(diǎn)是:首先對(duì)于圖像中要繪制的像素,根據(jù)視點(diǎn)方向,發(fā)射出一條射線,穿過像素中心向物體投射一單束光線,沿著射線,從遇到體數(shù)據(jù)開始,計(jì)算并整合遇到的體數(shù)據(jù)的光學(xué)屬性。光線投射算法采用為每個(gè)體素分配透明度和顏色值的方法來合成圖像,因此有利于保留圖像的細(xì)節(jié),繪制高品質(zhì)的圖像,特別適用于繪制區(qū)域特征模糊,體素特征相關(guān)性高的圖像。但因?yàn)樾枰闅v每個(gè)體素,而且當(dāng)觀察方向發(fā)生變化時(shí),數(shù)據(jù)中的采樣點(diǎn)之間的前后關(guān)系也發(fā)生變化,這樣就需要進(jìn)行重新采樣和計(jì)算,因此計(jì)算量較大。隨著醫(yī)學(xué)影像技術(shù)的發(fā)展,成像分辨率日益提升。光線投射法的每一次繪制都需要對(duì)整個(gè)體數(shù)據(jù)進(jìn)行計(jì)算和處理,處理數(shù)據(jù)量巨大,而傳統(tǒng)的腹部臟器三維可視化系統(tǒng)主要由基于CPU的編程語言(如c\c++等)實(shí)現(xiàn),運(yùn)行時(shí)間較慢,缺乏可以用于醫(yī)學(xué)診斷的實(shí)時(shí)性,使得該系統(tǒng)在實(shí)際應(yīng)用中有一定的限制。因此系統(tǒng)中可視化算法性能上的提升,對(duì)于整個(gè)醫(yī)學(xué)診斷工作和計(jì)算機(jī)圖形圖像處理工作都有著極為重要的價(jià)值。在腹部臟器可視化過程中,存在著高度的并行性,因此適合用GPU來進(jìn)行加速。與CPU相比,GPU具有并行的計(jì)算架構(gòu)以及超長(zhǎng)流水線,這種架構(gòu)雖然在處理少量數(shù)據(jù)時(shí)速度不及頻率更高的CPU,但在處理如醫(yī)學(xué)圖像等大量數(shù)據(jù)時(shí)速度遠(yuǎn)遠(yuǎn)超過CPU。同時(shí)GPU使用SIMD (Single Instruction Multiple Data,單指令多數(shù)據(jù)流)技術(shù),對(duì)于需要并行計(jì)算的數(shù)據(jù)只需編寫單個(gè)運(yùn)算操作即可實(shí)現(xiàn)并行計(jì)算過程。綜上所述基于GPU的腹部臟器三維可視化系統(tǒng)相對(duì)于傳統(tǒng)基于CPU的該系統(tǒng),運(yùn)算效率更高,能夠保證系統(tǒng)的實(shí)時(shí)性,具有更高的應(yīng)用價(jià)值。GLSL(The OpenGL Shading Language)是 OpenGL 著色語言的簡(jiǎn)稱,它是一種用于創(chuàng)建OpenGL著色器的語言。作為OpenGL 2.0標(biāo)準(zhǔn)的一部分,GLSL允許應(yīng)用程序顯式的指定處理頂點(diǎn)和處理片段時(shí)進(jìn)行的操作。借助GLSL能夠?qū)崿F(xiàn)基于GPU的腹部臟器三維可視化方法,提升系統(tǒng)的實(shí)時(shí)性。
發(fā)明內(nèi)容
針對(duì)現(xiàn)有技術(shù)存在的問題,本發(fā)明提供一種基于GPU的腹部臟器三維可視化方法。本發(fā)明的技術(shù)方案是:一種基于GPU的腹部臟器三維可視化的方法,包括以下步驟:步驟1:計(jì)算機(jī)X射線斷層掃描設(shè)備對(duì)人體腹部進(jìn)行CT掃描;步驟2:獲取腹部CT圖像,每組腹部CT圖像包含若干張腹部斷層掃描圖像;步驟3:對(duì)獲取的腹部CT圖像進(jìn)行三維可視化處理,得到三維可視化處理的結(jié)果圖像;步驟3.1:對(duì)腹部CT圖像進(jìn)行對(duì)應(yīng)點(diǎn)匹配插值,在每相鄰前后兩張腹部斷層掃描圖像間得到新插值圖像,由新插值圖像與原腹部CT圖像得到匹配插值后的腹部CT圖像即體數(shù)據(jù);
步驟3.2:從人在計(jì)算機(jī)內(nèi)的虛擬視點(diǎn)經(jīng)由光線投射初始空白圖像中每一像素點(diǎn)向體數(shù)據(jù)中發(fā)射虛擬光線,進(jìn)行光線投射,計(jì)算每一像素點(diǎn)的光線投射顯示結(jié)果,所有像素點(diǎn)光線投射顯示結(jié)果的集合構(gòu)成腹部CT圖像光線投射結(jié)果圖像;步驟3.3:對(duì)體數(shù)據(jù)進(jìn)行任意平面切割,將非感興趣區(qū)域從體數(shù)據(jù)中切除,對(duì)切割后的體數(shù)據(jù)進(jìn)行光線投射,得到切割后體數(shù)據(jù)的光線投射結(jié)果圖像;步驟3.4:若需要同時(shí)顯示多個(gè)體數(shù)據(jù),則進(jìn)行多體素光線投射,將不同體數(shù)據(jù)的光線投射結(jié)果圖像合成至同一結(jié)果圖像內(nèi)作為三維可視化處理的結(jié)果圖像,否則直接將切割后體數(shù)據(jù)的光線投射結(jié)果圖像作為三維可視化處理的結(jié)果圖像;步驟4:將腹部CT圖像的三維可視化處理的結(jié)果圖像在裝有獨(dú)立GPU的計(jì)算機(jī)屏
幕上顯示。所述步驟3.1對(duì)腹部CT圖像進(jìn)行對(duì)應(yīng)點(diǎn)匹配插值,在每相鄰前后兩張腹部斷層掃描圖像間得到新插值圖像,由新插值圖像與原腹部CT圖像得到匹配插值后的腹部CT圖像即體數(shù)據(jù),具體步驟如下:步驟3.1.1:對(duì)腹部CT圖像進(jìn)行匹配插值,在每相鄰前后兩張腹部斷層掃描圖像間得到新插值圖像;步驟3.1.2:對(duì)每個(gè)新插值圖像上的所有點(diǎn),計(jì)算其相鄰前后兩張腹部斷層掃描圖像中對(duì)應(yīng)點(diǎn)的灰度差,并設(shè)定灰度差閾值;步驟3.1.3:判斷計(jì)算出的灰度差是否大于灰度差閾值:是,則設(shè)定搜索窗口半徑和灰度閾值,在相鄰前后兩張腹部斷層掃描圖像中分別以該兩張圖像的對(duì)應(yīng)點(diǎn)為中心以搜索窗口半徑為半徑的匹配窗,在匹配窗內(nèi)選取最佳匹配點(diǎn)以決定當(dāng)前點(diǎn)的灰度值;否則,通過三次樣條插值求當(dāng)前點(diǎn)的灰度值;步驟3.1.4:得到每個(gè)新插值圖像上的所有點(diǎn)的灰度值;步驟3.1.5:由原腹部CT圖像灰度值與每個(gè)新插值圖像上的所有點(diǎn)的灰度值,得到匹配插值后的腹部CT圖像即體數(shù)據(jù),體數(shù)據(jù)中的所有像素點(diǎn)構(gòu)成一個(gè)三維的數(shù)據(jù)場(chǎng)。所述步驟3.2從人在計(jì)算機(jī)內(nèi)的虛擬視點(diǎn)經(jīng)由光線投射初始空白圖像中每一像素點(diǎn)向體數(shù)據(jù)中發(fā)射虛擬光線,進(jìn)行光線投射,計(jì)算每一像素點(diǎn)的光線投射顯示結(jié)果,所有像素點(diǎn)光線投射顯示結(jié)果的集合構(gòu)成腹部CT圖像光線投射結(jié)果圖像,具體步驟如下:步驟3.2.1:將體數(shù)據(jù)作為三維紋理加載至GPU的緩存中;步驟3.2.2:設(shè)定顏色傳遞函數(shù)與透明度傳遞函數(shù),并將這兩個(gè)傳遞函數(shù)作為一維紋理分別加載至GPU的緩存中;步驟3.2.3:從人在計(jì)算機(jī)內(nèi)的虛擬視點(diǎn)經(jīng)由光線投射初始空白圖像中每一像素點(diǎn)向體數(shù)據(jù)中發(fā)射虛擬光線,進(jìn)行光線投射;步驟3.2.4:在GPU內(nèi)并行處理所有投射的光線,沿光線進(jìn)行重采樣,對(duì)采樣結(jié)果進(jìn)行合成,并根據(jù)設(shè)定的顏色傳遞函數(shù)與透明度傳遞函數(shù)計(jì)算每一像素點(diǎn)的顏色和不透明度,即得到每一像素點(diǎn)的光線投射顯示結(jié)果;步驟3.2.5:所有光線投射顯示結(jié)果的集合構(gòu)成腹部CT圖像光線投射結(jié)果圖像。所述步驟3.3對(duì)體數(shù)據(jù)進(jìn)行任意平面切割,將非感興趣區(qū)域從體數(shù)據(jù)中切除,對(duì)切割后的體數(shù)據(jù)進(jìn)行光線投射,得到切割后體數(shù)據(jù)的光線投射結(jié)果圖像,具體步驟如下:步驟3.3.1:用戶在體數(shù)據(jù)上選定四個(gè)點(diǎn),以確定切割平面;
步驟3.3.2:將體數(shù)據(jù)中位于切割平面外的像素點(diǎn)灰度值設(shè)為0,即將非感興趣區(qū)域從體數(shù)據(jù)中切除;步驟3.3.3:從人在計(jì)算機(jī)內(nèi)的虛擬視點(diǎn)經(jīng)由腹部CT圖像中每一像素點(diǎn)向體數(shù)據(jù)中發(fā)射虛擬光線,計(jì)算每一像素點(diǎn)的光線投射顯示結(jié)果,所有像素點(diǎn)光線投射顯示結(jié)果的集合構(gòu)成切割后體數(shù)據(jù)的光線投射結(jié)果圖像。所述步驟3.4中的進(jìn)行多體素光線投射,將不同體數(shù)據(jù)的光線投射結(jié)果圖像合成至同一結(jié)果圖像內(nèi)作為三維可視化處理的結(jié)果圖像,具體方法如下:將多個(gè)體數(shù)據(jù)置于同一空間,對(duì)于多個(gè)體數(shù)據(jù)的未重合區(qū)域,多體素光線投射的結(jié)果圖像與腹部CT圖像光線投射的結(jié)果圖像一致;對(duì)于多個(gè)體數(shù)據(jù)的重合區(qū)域,設(shè)定權(quán)重因子ω,多個(gè)體數(shù)據(jù)的重合區(qū)域結(jié)果圖像I計(jì)算公式如下:I = ω.I1 + (1- ω.α ).I2其中,I1與I2分別表示兩個(gè)重合的體數(shù)據(jù)的光線投射結(jié)果圖像,a i表示第一幅圖像中的不透明度,如果重合區(qū)域包含兩個(gè)以上體數(shù)據(jù),則先求兩個(gè)重合體數(shù)據(jù)的結(jié)果,將得到的結(jié)果再與第三個(gè)體數(shù)據(jù)進(jìn)行計(jì)算,以此類推。所述步驟3.1.3中的設(shè)定搜索窗口半徑和灰度閾值,在相鄰前后兩張腹部斷層掃描圖像中分別以對(duì)應(yīng)點(diǎn)為中心以搜索窗口半徑為半徑的匹配窗,在匹配窗內(nèi)選取最佳匹配點(diǎn)以決定當(dāng)前點(diǎn)的灰度值,具體步驟如下:步驟3.1.3.1:將相鄰前后兩張腹部斷層掃描圖像任意一張?jiān)O(shè)為目標(biāo)圖像,另一張?jiān)O(shè)為參考圖像,并設(shè)定相異度權(quán)重因子,對(duì)目標(biāo)圖像匹配窗中灰度大于灰度閾值的點(diǎn)Pk,計(jì)算該點(diǎn)與參考圖像匹配窗中每一點(diǎn)pk+1的相異度,并選擇相異度最小的點(diǎn)作為Pk的最佳匹配點(diǎn);步驟3.1.3.2:交換參考圖像和目標(biāo)圖像,重新執(zhí)行步驟3.1.3.1,對(duì)于兩次結(jié)果一致的最佳匹配點(diǎn)進(jìn)行線性插值,求出新插值圖像中點(diǎn)的灰度值,否則使用三次樣條插值求新插值圖像中點(diǎn)的灰度值。所述步驟3.2.4在GPU內(nèi)并行處理所有投射的光線,沿光線進(jìn)行重采樣,對(duì)采樣結(jié)果進(jìn)行合成,并根據(jù)設(shè)定的顏色傳遞函數(shù)與透明度傳遞函數(shù)計(jì)算每一像素點(diǎn)的顏色和不透明度,即得到每一像素點(diǎn)的光線投射顯示結(jié)果,具體步驟如下:步驟3.2.4.1:對(duì)于一條投射光線L,獲取其在數(shù)據(jù)場(chǎng)入射點(diǎn)的投影坐標(biāo)和出射點(diǎn)的投影坐標(biāo);步驟3.2.4.2:設(shè)定采樣間隔,即在投射光線L進(jìn)入數(shù)據(jù)場(chǎng)后每間隔采樣間隔距離米樣一次;步驟3.2.4.3:對(duì)于一采樣點(diǎn)P,將其投影坐標(biāo)β轉(zhuǎn)換為模型局部坐標(biāo)α ;步驟3.2.4.4:對(duì)采樣點(diǎn)P的模型局部坐標(biāo)α在數(shù)據(jù)場(chǎng)中進(jìn)行三維紋理查找,得到P點(diǎn)灰度值;步驟3.2.4.5:對(duì)P點(diǎn)灰度值在顏色傳遞函數(shù)與透明度傳遞函數(shù)中分別進(jìn)行一維紋理查找,得到P點(diǎn)的顏色與透明度;步驟3.2.4.6:對(duì)透明度進(jìn)行不透明度修正,消除采樣點(diǎn)過密可能導(dǎo)致的過采樣現(xiàn)象; 步驟3.2.4.7:根據(jù)Phone光照模型求采樣點(diǎn)P的最終顏色I(xiàn) ;
步驟3.2.4.8:對(duì)投射光線L上所有采樣點(diǎn)的顏色求平均顏色作為在結(jié)果圖像中對(duì)應(yīng)像素顯示的顏色,修正后的透明度求和得到對(duì)應(yīng)像素的透明度。所述的基于GPU的腹部臟器三維可視化的方法采用的三維可視化系統(tǒng),包括裝有獨(dú)立GPU的計(jì)算機(jī)和計(jì)算機(jī)X射線斷層掃描設(shè)備;所述計(jì)算機(jī)X射線斷層掃描設(shè)備用于獲取腹部CT圖像,并將其傳輸至裝有獨(dú)立GPU的計(jì)算機(jī);所述裝有獨(dú)立GPU的計(jì)算機(jī)用于對(duì)腹部CT圖像進(jìn)行三維可視化圖像數(shù)據(jù)處理。有益效果:本發(fā)明在對(duì)醫(yī)學(xué)圖像三維可視化處理時(shí)先進(jìn)行插值,使斷層圖像的層間隔減??;基于GPU進(jìn)行光線投射,利用GPU高并發(fā)的特性、有效地降低計(jì)算時(shí)間;引入Phone光照模型完善體繪制效果,增強(qiáng)真實(shí)感;對(duì)多體數(shù)據(jù)的多體素光線投射針對(duì)原來對(duì)全身進(jìn)行可視化和單個(gè)體數(shù)據(jù)進(jìn)行繪制的一些不足和弊病,如對(duì)全身所有體數(shù)據(jù)統(tǒng)一設(shè)置傳遞函數(shù)、沒有針對(duì)性,可視化效果不明顯等,利用已分割好的腹部臟器,分別顯示,分別設(shè)置傳遞函數(shù),有效地對(duì)腹部臟器進(jìn)行了可視化,能顯示不同腹部臟器的細(xì)節(jié)信息;本發(fā)明最后給出三維體數(shù)據(jù)場(chǎng)的任意平面切割的實(shí)現(xiàn)方法,能更豐富的反映體數(shù)據(jù)的內(nèi)部信息,滿足醫(yī)生對(duì)圖像質(zhì)量和交互性能的需要。
圖1是本發(fā)明的具體實(shí)施方式
的光線投射示意圖;圖2是傳統(tǒng)基于CPU的光線投射流程圖;圖3是本發(fā)明的具體實(shí)施方式
的方法的光線投射流程圖;圖4是本發(fā)明的具體實(shí)施方式
的基于GPU的腹部臟器三維可視化的方法流程圖;圖5是本發(fā)明的具體實(shí)施方式
的對(duì)獲取的腹部CT圖像進(jìn)行三維可視化處理的流程圖;圖6是本發(fā)明的具體實(shí)施方式
的任意兩個(gè)角度的光線投射結(jié)果圖像;圖7是本發(fā)明的具體實(shí)施方式
的第一組腹部CT圖像進(jìn)行體數(shù)據(jù)切割的結(jié)果圖像,其中(a)為冠狀切割結(jié)果圖像,(b)為橫斷面切割結(jié)果圖像,(c)為矢狀面切割結(jié)果圖像,(dr(f)為任意平面切割結(jié)果圖像;圖8是本發(fā)明的具體實(shí)施方式
的第一組、第四組和第五組腹部CT圖像進(jìn)行多體素光線投射結(jié)果圖像,其中,(a)為正??梢暬Y(jié)果圖像,(b)為突出顯示膽囊的可視化結(jié)果圖像。
具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式
做詳細(xì)說明。本實(shí)施方式中,采用的三維可視化系統(tǒng),包括裝有獨(dú)立GPU的計(jì)算機(jī)和計(jì)算機(jī)X射線斷層掃描設(shè)備;計(jì)算機(jī)X射線斷層掃描設(shè)備用于獲取腹部CT圖像,并將其傳輸至裝有獨(dú)立GPU的計(jì)算機(jī);裝有獨(dú)立GPU的計(jì)算機(jī)用于對(duì)腹部CT圖像進(jìn)行三維可視化圖像數(shù)據(jù)處理,硬件配置為 Intel Core2 Duo T6500 CPU、2GB 內(nèi)存、采用 GPU 為 NVIDIA GeForce GT130M 圖形顯不卡。一種基于GPU的腹部臟器三維可視化的方法,如圖4所示,包括以下步驟:步驟1:計(jì)算機(jī)X射線斷層掃描設(shè)備對(duì)人體腹部進(jìn)行CT掃描;步驟2:獲取五組腹部CT圖像,每組腹部CT圖像包含若干張腹部斷層掃描圖像;腹部CT圖像共五組:第一組為肝臟CT圖像,包括163張肝臟斷層掃描圖像,該肝臟CT圖像大小為512X512X163,像素間距為0.68X0.68X2mm ;第二組為肝臟CT圖像,包括85張肝臟斷層掃描圖像,該肝臟CT圖像大小為256X256X85,層間距為0.68X0.68 X 2mm ;第三組為肝臟CT圖像,包括185張肝臟斷層掃描圖像,該肝臟CT圖像大小為708 X 706 X 185,層間距為0.68 X 0.68 X 2mm ;第四組為脾臟CT圖像,包括98張脾臟斷層掃描圖像,該脾臟CT圖像大小為512 X 512 X 98,層間距為0.68X0.68 X 2mm ;第五組為膽囊CT圖像,包括46張膽囊斷層掃描圖像,該膽囊CT圖像大小為560 X 558 X 46,層間距為0.68 X 0.68 X 2mm。步驟3:對(duì)獲取的五組腹部CT圖像進(jìn)行三維可視化處理,得到三維可視化處理的結(jié)果圖像,流程如圖5所示,步驟如下:步驟3.1:對(duì)五組腹部CT圖像進(jìn)行對(duì)應(yīng)點(diǎn)匹配插值,在每相鄰前后兩張腹部斷層掃描圖像間得到新插值圖像,由新插值圖像與原腹部CT圖像得到匹配插值后的腹部CT圖像即體數(shù)據(jù),具體步驟如下:步驟3.1.1:對(duì)腹部CT圖像進(jìn)行匹配插值,在每相鄰前后兩張腹部斷層掃描圖像間得到新插值圖像,新插值圖像上的點(diǎn)記為(Xi,Yj, Z),其相鄰前后兩張腹部斷層掃描圖像中對(duì)應(yīng)點(diǎn)分別記為(Xi,Yj, Zk)、(Xi, Yj, zk+1);步驟3.1.2:對(duì)每個(gè)新插值圖像上的所有點(diǎn),計(jì)算其相鄰前后兩張腹部斷層掃描圖像中對(duì)應(yīng)點(diǎn)的灰度差Du,并設(shè)定灰度差閾值T為10 ;步驟3.1.3:判斷計(jì)算出的灰度差Du是否大于灰度差閾值T:是,則設(shè)定搜索窗口半徑W=5和灰度閾值V=0,在相鄰前后兩張腹部斷層掃描圖像中分別以該兩張圖像的對(duì)應(yīng)點(diǎn)為中心以搜索窗口半徑W為半徑的匹配窗,在匹配窗內(nèi)選取最佳匹配點(diǎn)以決定當(dāng)前點(diǎn)的灰度值;否則,通過三次樣條插值求當(dāng)前點(diǎn)的灰度值;其中,設(shè)定搜索窗口半徑W=5和灰度閾值V=0,在相鄰前后兩張腹部斷層掃描圖像中分別以對(duì)應(yīng)點(diǎn)為中心以搜索窗口半徑W為半徑的匹配窗,在匹配窗內(nèi)選取最佳匹配點(diǎn)以決定當(dāng)前點(diǎn)的灰度值,具體步驟如下:步驟3.1.3.1:將相鄰前后兩張腹部斷層掃描圖像任意一張?jiān)O(shè)為目標(biāo)圖像,另一張?jiān)O(shè)為參考圖像,并設(shè)定相異度權(quán)重因子ul=0.25,u2=0.25,u3=0.25,u4=0.25,對(duì)目標(biāo)圖像匹配窗中灰度大于灰度閾值V的點(diǎn)Pk,計(jì)算該點(diǎn)與參考圖像匹配窗中每一點(diǎn)Pk+1的相異度,并選擇相異度最小的點(diǎn)作為Pk的最佳匹配點(diǎn);求點(diǎn)Pk、Pk+1間相異度的C(Pk,Pk+1)的公式如下:C (Pk, Pk+1) =U1 [f (Pk) -f (Pk+1) ] ie+u2 [g (Pk) -g (Pk+1) ] je+u3 [ Θ (Pk) - Θ (Pk+1)]ke+u4D [Pk, Pk+1] Ie其中,ie> je> ke、Ie分別表示灰度、梯度、梯度方向和偏移四個(gè)方向上的單位向量,f(Pk)表示第k層點(diǎn)的灰度值,g(Pk)表示第k層點(diǎn)的梯度值,Θ (Pk)表示第k層點(diǎn)的梯度方向,D[Pk,Pk+1]表示第k層和第k+1層上進(jìn)行計(jì)算的兩個(gè)點(diǎn)在水平面上投影的距離;步驟3.1.3.2:交換參考圖像和目標(biāo)圖像,重新執(zhí)行步驟3.1.3.1,對(duì)于兩次結(jié)果一致的最佳匹配點(diǎn)進(jìn)行線性插值,求出新插值圖像中點(diǎn)(Xi,yj,z)的灰度值,否則使用三次樣條插值求點(diǎn)(Xi,yj,z)的灰度值。步驟3.1.4:得到每個(gè)新插值圖像上的所有點(diǎn)的灰度值;步驟3.1.5:由原腹部CT圖像灰度值與每個(gè)新插值圖像上的所有點(diǎn)的灰度值,得到匹配插值后的腹部CT圖像即體數(shù)據(jù),體數(shù)據(jù)中的所有像素點(diǎn)構(gòu)成一個(gè)三維的數(shù)據(jù)場(chǎng)。對(duì)五組腹部CT圖像均進(jìn)行插值,插值后的腹部CT圖像數(shù)據(jù)量增加了一倍,能夠有效地增強(qiáng)三維可視化的效果。步驟3.2:從人在計(jì)算機(jī)內(nèi)的虛擬視點(diǎn)經(jīng)由光線投射初始空白圖像中每一像素點(diǎn)向體數(shù)據(jù)中發(fā)射虛擬光線,進(jìn)行光線投射,如圖1所示,計(jì)算每一像素點(diǎn)的光線投射顯示結(jié)果,所有像素點(diǎn)光線投射顯示結(jié)果的集合構(gòu)成腹部CT圖像光線投射結(jié)果圖像,光線投射的流程如圖3所示,具體步驟如下:步驟3.2.1:將體數(shù)據(jù)作為三維紋理加載至GPU的緩存中;步驟3.2.2:設(shè)定顏色傳遞函數(shù)與透明度傳遞函數(shù),并將這兩個(gè)傳遞函數(shù)作為一維紋理分別加載至GPU的緩存中;顏色傳遞函數(shù)與透明度傳遞函數(shù)的形式相同,表示如下:
權(quán)利要求
1.一種基于GPU的腹部臟器三維可視化的方法,其特征在于:包括以下步驟: 步驟1:計(jì)算機(jī)X射線斷層掃描設(shè)備對(duì)人體腹部進(jìn)行CT掃描; 步驟2:獲取腹部CT圖像,每組腹部CT圖像包含若干張腹部斷層掃描圖像; 步驟3:對(duì)獲取的腹部CT圖像進(jìn)行三維可視化處理,得到三維可視化處理的結(jié)果圖像; 步驟3.1:對(duì)腹部CT圖像進(jìn)行對(duì)應(yīng)點(diǎn)匹配插值,在每相鄰前后兩張腹部斷層掃描圖像間得到新插值圖像,由新插值圖像與原腹部CT圖像得到匹配插值后的腹部CT圖像即體數(shù)據(jù); 步驟3.2:從人在計(jì)算機(jī)內(nèi)的虛擬視點(diǎn)經(jīng)由光線投射初始空白圖像中每一像素點(diǎn)向體數(shù)據(jù)中發(fā)射虛擬光線,進(jìn)行光線投射,計(jì)算每一像素點(diǎn)的光線投射顯示結(jié)果,所有像素點(diǎn)光線投射顯示結(jié)果的集合構(gòu)成腹部CT圖像光線投射結(jié)果圖像; 步驟3.3:對(duì)體數(shù)據(jù)進(jìn)行任意平面切割,將非感興趣區(qū)域從體數(shù)據(jù)中切除,對(duì)切割后的體數(shù)據(jù)進(jìn)行光線投射,得到切割后體數(shù)據(jù)的光線投射結(jié)果圖像; 步驟3.4:若需要同時(shí)顯示多個(gè)體數(shù)據(jù),則進(jìn)行多體素光線投射,將不同體數(shù)據(jù)的光線投射結(jié)果圖像合成至同一結(jié)果圖像內(nèi)作為三維可視化處理的結(jié)果圖像,否則直接將切割后體數(shù)據(jù)的光線投射結(jié)果圖像作為三維可視化處理的結(jié)果圖像; 步驟4:將腹部CT圖像的三維可視化處理的結(jié)果圖像在裝有獨(dú)立GPU的計(jì)算機(jī)屏幕上顯不O
2.根據(jù)權(quán)利要求1所述的基于GPU的腹部臟器三維可視化的方法,其特征在于:所述步驟3.1對(duì)腹部CT圖像進(jìn)行對(duì)應(yīng)點(diǎn)匹配插值,在每相鄰前后兩張腹部斷層掃描圖像間得到新插值圖像,由新插值圖像與原腹部CT圖像得到匹配插值后的腹部CT圖像即體數(shù)據(jù),具體步驟如下: 步驟3.1.1:對(duì)腹部CT圖像進(jìn)行匹配插值,在每相鄰前后兩張腹部斷層掃描圖像間得到新插值圖像; 步驟3.1.2:對(duì)每個(gè)新插值圖像上的所有點(diǎn),計(jì)算其相鄰前后兩張腹部斷層掃描圖像中對(duì)應(yīng)點(diǎn)的灰度差, 并設(shè)定灰度差閾值; 步驟3.1.3:判斷計(jì)算出的灰度差是否大于灰度差閾值:是,則設(shè)定搜索窗口半徑和灰度閾值,在相鄰前后兩張腹部斷層掃描圖像中分別以該兩張圖像的對(duì)應(yīng)點(diǎn)為中心以搜索窗口半徑為半徑的匹配窗,在匹配窗內(nèi)選取最佳匹配點(diǎn)以決定當(dāng)前點(diǎn)的灰度值;否則,通過三次樣條插值求當(dāng)前點(diǎn)的灰度值; 步驟3.1.4:得到每個(gè)新插值圖像上的所有點(diǎn)的灰度值; 步驟3.1.5:由原腹部CT圖像灰度值與每個(gè)新插值圖像上的所有點(diǎn)的灰度值,得到匹配插值后的腹部CT圖像即體數(shù)據(jù),體數(shù)據(jù)中的所有像素點(diǎn)構(gòu)成一個(gè)三維的數(shù)據(jù)場(chǎng)。
3.根據(jù)權(quán)利要求1所述的基于GPU的腹部臟器三維可視化的方法,其特征在于:所述步驟3.2從人在計(jì)算機(jī)內(nèi)的虛擬視點(diǎn)經(jīng)由光線投射初始空白圖像中每一像素點(diǎn)向體數(shù)據(jù)中發(fā)射虛擬光線,進(jìn)行光線投射,計(jì)算每一像素點(diǎn)的光線投射顯示結(jié)果,所有像素點(diǎn)光線投射顯示結(jié)果的集合構(gòu)成腹部CT圖像光線投射結(jié)果圖像,具體步驟如下: 步驟3.2.1:將體數(shù)據(jù)作為三維紋理加載至GPU的緩存中; 步驟3.2.2:設(shè)定顏色傳遞函數(shù)與透明度傳遞函數(shù),并將這兩個(gè)傳遞函數(shù)作為一維紋理分別加載至GPU的緩存中; 步驟3.2.3:從人在計(jì)算機(jī)內(nèi)的虛擬視點(diǎn)經(jīng)由光線投射初始空白圖像中每一像素點(diǎn)向體數(shù)據(jù)中發(fā)射虛擬光線,進(jìn)行光線投射; 步驟3.2.4:在GPU內(nèi)并行處理所有投射的光線,沿光線進(jìn)行重采樣,對(duì)采樣結(jié)果進(jìn)行合成,并根據(jù)設(shè)定的顏色傳遞函數(shù)與透明度傳遞函數(shù)計(jì)算每一像素點(diǎn)的顏色和不透明度,即得到每一像素點(diǎn)的光線投射顯示結(jié)果; 步驟3.2.5:所有光線投射顯示結(jié)果的集合構(gòu)成腹部CT圖像光線投射結(jié)果圖像。
4.根據(jù)權(quán)利要求1所述的基于GPU的腹部臟器三維可視化的方法,其特征在于:所述步驟3.3對(duì)體數(shù)據(jù)進(jìn)行任意平面切割,將非感興趣區(qū)域從體數(shù)據(jù)中切除,對(duì)切割后的體數(shù)據(jù)進(jìn)行光線投射,得到切割后體數(shù)據(jù)的光線投射結(jié)果圖像,具體步驟如下: 步驟3.3.1:用戶 在體數(shù)據(jù)上選定四個(gè)點(diǎn),以確定切割平面; 步驟3.3.2:將體數(shù)據(jù)中位于切割平面外的像素點(diǎn)灰度值設(shè)為O,即將非感興趣區(qū)域從體數(shù)據(jù)中切除; 步驟3.3.3:從人在計(jì)算機(jī)內(nèi)的虛擬視點(diǎn)經(jīng)由腹部CT圖像中每一像素點(diǎn)向體數(shù)據(jù)中發(fā)射虛擬光線,計(jì)算每一像素點(diǎn)的光線投射顯示結(jié)果,所有像素點(diǎn)光線投射顯示結(jié)果的集合構(gòu)成切割后體數(shù)據(jù)的光線投射結(jié)果圖像。
5.根據(jù)權(quán)利要求1所述的基于GPU的腹部臟器三維可視化的方法,其特征在于:所述步驟3.4中的進(jìn)行多體素光線投射,將不同體數(shù)據(jù)的光線投射結(jié)果圖像合成至同一結(jié)果圖像內(nèi)作為三維可視化處理的結(jié)果圖像,具體方法如下: 將多個(gè)體數(shù)據(jù)置于同一空間,對(duì)于多個(gè)體數(shù)據(jù)的未重合區(qū)域,多體素光線投射的結(jié)果圖像與腹部CT圖像光線投射的結(jié)果圖像一致;對(duì)于多個(gè)體數(shù)據(jù)的重合區(qū)域,設(shè)定權(quán)重因子ω,多個(gè)體數(shù)據(jù)的重合區(qū)域結(jié)果圖像I計(jì)算公式如下:I = ω.I1 + (1- ω.a ^.I2 其中,A與I2分別表示兩個(gè)重合的體數(shù)據(jù)的光線投射結(jié)果圖像,α 7表示第一幅圖像中的不透明度,如果重合區(qū)域包含兩個(gè)以上體數(shù)據(jù),則先求兩個(gè)重合體數(shù)據(jù)的結(jié)果,將得到的結(jié)果再與第三個(gè)體數(shù)據(jù)進(jìn)行計(jì)算,以此類推。
6.根據(jù)權(quán)利要求2所述的基于GPU的腹部臟器三維可視化的方法,其特征在于:所述步驟3.1.3中的設(shè)定搜索窗口半徑和灰度閾值,在相鄰前后兩張腹部斷層掃描圖像中分別以對(duì)應(yīng)點(diǎn)為中心以搜索窗口半徑為半徑的匹配窗,在匹配窗內(nèi)選取最佳匹配點(diǎn)以決定當(dāng)前點(diǎn)的灰度值,具體步驟如下: 步驟3.1.3.1:將相鄰前后兩張腹部斷層掃描圖像任意一張?jiān)O(shè)為目標(biāo)圖像,另一張?jiān)O(shè)為參考圖像,并設(shè)定相異度權(quán)重因子,對(duì)目標(biāo)圖像匹配窗中灰度大于灰度閾值的點(diǎn)Pk,計(jì)算該點(diǎn)與參考圖像匹配窗中每一點(diǎn)Pk+1的相異度,并選擇相異度最小的點(diǎn)作為Pk的最佳匹配占.步驟3.1.3.2:交換參考圖像和目標(biāo)圖像,重新執(zhí)行步驟3.1.3.1,對(duì)于兩次結(jié)果一致的最佳匹配點(diǎn)進(jìn)行線性插值,求出新插值圖像中點(diǎn)的灰度值,否則使用三次樣條插值求新插值圖像中點(diǎn)的灰度值。
7.根據(jù)權(quán)利要求3所述的基于GPU的腹部臟器三維可視化的方法,其特征在于:所述步驟3.2.4在GPU內(nèi)并行處理所有投射的光線,沿光線進(jìn)行重采樣,對(duì)采樣結(jié)果進(jìn)行合成,并根據(jù)設(shè)定的顏色傳遞函數(shù)與透明度傳遞函數(shù)計(jì)算每一像素點(diǎn)的顏色和不透明度,即得到每一像素點(diǎn)的光線投射顯示結(jié)果,具體步驟如下: 步驟3.2.4.1:對(duì)于一條投射光線L,獲取其在數(shù)據(jù)場(chǎng)入射點(diǎn)的投影坐標(biāo)和出射點(diǎn)的投影坐標(biāo); 步驟3.2.4.2:設(shè)定采樣間隔,即在投射光線L進(jìn)入數(shù)據(jù)場(chǎng)后每間隔采樣間隔距離采樣一次; 步驟3.2.4.3:對(duì)于一采樣點(diǎn)P,將其投影坐標(biāo)β轉(zhuǎn)換為模型局部坐標(biāo)α ; 步驟3.2.4.4:對(duì)采樣點(diǎn)P的模型局部坐標(biāo)α在數(shù)據(jù)場(chǎng)中進(jìn)行三維紋理查找,得到P點(diǎn)灰度值; 步驟3.2.4.5:對(duì)P點(diǎn)灰度值在顏色傳遞函數(shù)與透明度傳遞函數(shù)中分別進(jìn)行一維紋理查找,得到P點(diǎn)的顏色與透明度; 步驟3.2.4.6:對(duì)透明度進(jìn)行不透明度修正,消除采樣點(diǎn)過密可能導(dǎo)致的過采樣現(xiàn)象; 步驟3.2.4.7:根據(jù)Phone光照模型求采樣點(diǎn)P的最終顏色I(xiàn) ; 步驟3.2.4.8:對(duì)投 射光線L上所有采樣點(diǎn)的顏色求平均顏色作為在結(jié)果圖像中對(duì)應(yīng)像素顯示的顏色,修正后的透明度求和得到對(duì)應(yīng)像素的透明度。
8.如權(quán)利要求1所述的基于GPU的腹部臟器三維可視化的方法所采用的腹部臟器三維可視化系統(tǒng),其特征在于:包括裝有獨(dú)立GPU的計(jì)算機(jī)和計(jì)算機(jī)X射線斷層掃描設(shè)備; 所述計(jì)算機(jī)X射線斷層掃描設(shè)備用于獲取腹部CT圖像,并將其傳輸至裝有獨(dú)立GPU的計(jì)算機(jī); 所述裝有獨(dú)立GPU的計(jì)算機(jī)用于對(duì)腹部CT圖像進(jìn)行三維可視化圖像數(shù)據(jù)處理。
全文摘要
一種基于GPU的腹部臟器三維可視化的方法,屬于醫(yī)學(xué)圖像處理技術(shù)領(lǐng)域,計(jì)算機(jī)X射線斷層掃描設(shè)備對(duì)人體腹部進(jìn)行CT掃描;獲取腹部CT圖像,并對(duì)獲取的腹部CT圖像進(jìn)行三維可視化處理,得到三維可視化處理的結(jié)果圖像;對(duì)腹部CT圖像進(jìn)行對(duì)應(yīng)點(diǎn)匹配插值得到新插值圖像,由新插值圖像與原腹部CT圖像得到匹配插值后的腹部CT圖像即體數(shù)據(jù);進(jìn)行光線投射,得到腹部CT圖像光線投射結(jié)果圖像;將腹部CT圖像的三維可視化處理的結(jié)果圖像在裝有獨(dú)立GPU的計(jì)算機(jī)屏幕上顯示。在對(duì)醫(yī)學(xué)圖像三維可視化處理時(shí)先進(jìn)行插值,使斷層圖像的層間隔減小;基于GPU進(jìn)行光線投射,利用GPU高并發(fā)的特性、有效地降低計(jì)算時(shí)間。
文檔編號(hào)G06T3/40GK103106685SQ20131001507
公開日2013年5月15日 申請(qǐng)日期2013年1月16日 優(yōu)先權(quán)日2013年1月16日
發(fā)明者姜慧研, 項(xiàng)飛, 鄒坤 申請(qǐng)人:東北大學(xué)