專利名稱::基于gpu加速的實時三維心臟數(shù)據(jù)體繪制方法
技術領域:
:本發(fā)明涉及的是一種基于GPU(GraphicProcessingUnit)體繪制方法,特別是一種將結(jié)構(gòu)復雜的三維心臟數(shù)據(jù)以實時交互、可配置的形式顯示的方法,屬于圖形圖像處理領域。
背景技術:
:心臟作為人體的重要器官,是人體循環(huán)系統(tǒng)的動力源。心臟疾病如冠心病等已經(jīng)成為世界上最大的致死原因之一。加強對心臟工作和發(fā)病機理的認識,改善心臟疾病的診斷和治療,已成為生物醫(yī)學工程領域的一個研究熱點。因而,相關的醫(yī)學成像和建模仿真技術近年來得以迅速發(fā)展,涌現(xiàn)了大量如醫(yī)學切片和電生理仿真等三維心臟數(shù)據(jù)。心臟的結(jié)構(gòu)復雜,由多個器官和血管組成。外部的器官包圍了內(nèi)部的器官,使人們難以了解心臟的內(nèi)部結(jié)構(gòu),從而難以了解心臟的整體結(jié)構(gòu)。VassiliosHurmusiadis開發(fā)了用于教育和培訓的VirtualHeart心臟仿真平臺,該平臺從功能和結(jié)構(gòu)上展示了心臟的細胞、組織和器官。在心臟整體結(jié)構(gòu)的演示部分使用MarchingCube方法繪制三位心臟模型,并且使用剪切平面的方法演示心臟的內(nèi)部結(jié)構(gòu)。由于MarchingCube方法不能繪制出心臟的內(nèi)部信息,而剪切平面又破壞了心臟整體的效果,所以該系統(tǒng)不能直觀的繪制出心臟的整體結(jié)構(gòu)。Yang等人設計適用于三維人心臟數(shù)據(jù)的加速可視化算法。該方法很好地展示了心臟的整體結(jié)構(gòu),但由于繪制速度較慢無法達到良好用戶交互的目的。體繪制也稱作體渲染(VolumeRendering),是一種重要的圖形處理和可視化技術。它不但能夠顯示模型表面的形狀與紋理信息,而且能夠顯示包含在數(shù)據(jù)中的復雜細節(jié)和數(shù)據(jù)間的相互關系。由于體數(shù)據(jù)的數(shù)據(jù)量非常大,在PC機上使用軟件方法難以實現(xiàn)交互式可視化,研究人員只能求助于并行處理能力強大的超級計算機。
發(fā)明內(nèi)容本發(fā)明的目的在于,解決現(xiàn)有三維心臟數(shù)據(jù)的體繪制速度慢、對計算機性能要求高的問題,進而提供一種快速的、能夠?qū)崿F(xiàn)三維心臟數(shù)據(jù)體繪制方法。本發(fā)明的基于GPU加速的實時三維心臟數(shù)據(jù)體繪制方法是基于帶有支持Cg語言的顯卡的PC機實現(xiàn)的,所述體繪制方法的具體包括數(shù)據(jù)讀取和預處理的步驟、數(shù)據(jù)坐標變換的步驟和圖像繪制的步驟,其中數(shù)據(jù)讀取和預處理的步驟,是把待繪制的心臟的多個切片數(shù)據(jù)組織成體數(shù)據(jù)文件,并將所述體數(shù)據(jù)文件打包成三維紋理數(shù)據(jù)包后,存儲到顯卡的內(nèi)存中;將待繪制的心臟的切片數(shù)據(jù)所表示的切片圖像的寬和高分別作為體數(shù)據(jù)的X,y軸,將待繪制的心臟的所有切片數(shù)據(jù)的數(shù)量作為體數(shù)據(jù)的z軸;數(shù)據(jù)坐標變換的步驟,是將數(shù)據(jù)預處理的步驟獲得的三維紋理數(shù)據(jù)包中的數(shù)據(jù)坐標轉(zhuǎn)換成屏幕坐標;圖像繪制的步驟,是將坐標規(guī)范化之后的體數(shù)據(jù)采用直接體繪制的方法繪制輸出o本發(fā)明的創(chuàng)新點在于使用GPU強大的幾何處理能力,應用于復雜三維心臟數(shù)據(jù)的交互可視化,使心臟的數(shù)據(jù)可以根據(jù)用戶的輸入實時地顯示心臟的整體結(jié)構(gòu)或不同的器官,本發(fā)明回避了使用剪切平面的方法,使用戶可以觀察心臟的各個組成部分,同時又不破壞整個心臟的結(jié)構(gòu)。本發(fā)明使用直接體繪制(DirectVolumeRendering)方法,使用戶能夠觀察到心臟的整體結(jié)構(gòu)。本發(fā)明的優(yōu)點有一、提高了圖像顯示速度采用了圖形硬件加速技術,即采用現(xiàn)有基于GPU體系結(jié)構(gòu)的高層著色語言(相對于只針對特定顯卡設計的匯編語言)實現(xiàn)圖形顯示的加速,進而大大提高了圖像的顯示速度。二、提高了CPU的運算速度采用圖形硬件加速實現(xiàn)體繪制,只需要將待繪制的數(shù)據(jù)打包成紋理的形式傳輸?shù)斤@卡上,然后將復雜的運算負荷也轉(zhuǎn)移到顯卡進行,使CPU專注其它工作,從而大大提高了CPU的運算速度。三、實現(xiàn)三維心臟數(shù)據(jù)的交互可視化本發(fā)明的三維心臟數(shù)據(jù)體繪制方法速度快,能夠?qū)崿F(xiàn)復雜三維心臟數(shù)據(jù)的交互式可視化,能夠使用戶可以交互地配置、觀察、分析可視化結(jié)果。四、低成本。本方法只需一臺普通的PC機和一塊支持Cg語言的顯卡。目前的家用電腦配置都可以使用本方法。五、高度的兼容性。本發(fā)明使用可以跨平臺的開發(fā)語言和工具包,所以理論上(或稍做修改)可以運行在不同的操作系統(tǒng)和硬件平臺下。六、高度的易用性。本發(fā)明只需要鼠標和鍵盤就可以完成對可視化結(jié)果的調(diào)整和配置。方便、易用,對用戶的醫(yī)學知識和電腦操作技能幾乎沒有要求。本發(fā)明的方法在保證心臟模型的繪制速度的前提下使心臟數(shù)據(jù)的可視化觀察分析成為可能。本發(fā)明可以應用于醫(yī)學院學生的心內(nèi)科基礎培訓以及虛擬手術培訓,也可以用作普及心臟病預防知識的演示系統(tǒng)。隨著人們保健意識的提高,本系統(tǒng)具有巨大的潛在市場。本發(fā)明所述的方法,還是用于其它復雜結(jié)構(gòu)的三維臟器的體繪制。圖1是實施方式中所述的體數(shù)據(jù)的灰度值頻率統(tǒng)計圖。圖2是心臟組織灰度值及各灰度值對應的光學屬性映射圖。圖3采用現(xiàn)有方法根據(jù)心臟的切片數(shù)據(jù)進行體繪制獲得的圖片。圖4和圖5都是采用本發(fā)明所述的方法根據(jù)心臟的切片數(shù)據(jù)繪制獲得的圖片,兩附圖片的視線角度不同。實施方式本實施方式所述的基于GPU加速的實時三維心臟數(shù)據(jù)體繪制方法是基于帶有支持Cg語言的顯卡的PC機實現(xiàn)的。所述顯卡的圖形處理核心芯片為GPU(GraphiCProcessingUnit),本方法的具體包括數(shù)據(jù)讀取和預處理的步驟、數(shù)據(jù)坐標變換的步驟和圖像繪制的步驟,其中數(shù)據(jù)讀取和預處理的步驟,是把待繪制的心臟的多個切片數(shù)據(jù)組織成體數(shù)據(jù)文件,并將所述體數(shù)據(jù)文件打包成三維紋理數(shù)據(jù)包后,存儲到顯卡的內(nèi)存中;將待繪制的心臟的切片數(shù)據(jù)所表示的切片圖像的寬和高分別作為體數(shù)據(jù)的x,y軸,將待繪制的心臟的所有切片數(shù)據(jù)的數(shù)量作為體數(shù)據(jù)的z軸;具體過程為將待繪制的心臟的每個切片數(shù)據(jù)中的頭信息刪除,然后將刪除頭信息之后的所有切片數(shù)據(jù)進行調(diào)整、形成滿足三維紋理打包的要求體數(shù)據(jù)文件,最后由支持Cg語言的顯卡的GPU將所述體數(shù)據(jù)文件打包成三維紋理數(shù)據(jù)包。上述步驟中,切片數(shù)據(jù)的處理、并形成體數(shù)據(jù)文件的過程有PC機的CPU實現(xiàn),而將所述體數(shù)據(jù)文件打包成三維紋理數(shù)據(jù)包的過程由支持Cg語言的顯卡的GPU完成,所形成的三位紋理數(shù)據(jù)包存儲在顯卡的內(nèi)存中,不占用CPU的資源。數(shù)據(jù)坐標變換的步驟,是將數(shù)據(jù)預處理的步驟獲得的三維紋理數(shù)據(jù)包中的數(shù)據(jù)坐標轉(zhuǎn)換成屏幕坐標,具體過程為將三維數(shù)據(jù)的坐標依次進行視圖變換、投影變換和規(guī)范化變換,最終獲得屏幕坐標。將數(shù)據(jù)坐標進行視圖的變換過程為將視圖坐標的原點P的坐標設定為世界坐標系下的坐標P=(x。,y。,z0),則坐標平移變換公式為<formula>formulaseeoriginaldocumentpage7</formula>坐標旋轉(zhuǎn)變換公式為<formula>formulaseeoriginaldocumentpage7</formula><formula>formulaseeoriginaldocumentpage7</formula>其中,單位向量u,v,n是世界坐標系下的參考幀的三個坐標軸的三個方向向量將平移變換公式和旋轉(zhuǎn)變換公式相乘,獲得從世界坐標系到視圖坐標系下的視圖坐標變換公式<formula>formulaseeoriginaldocumentpage7</formula>將數(shù)據(jù)坐標與視圖坐標變換公式相乘,獲得視圖坐標系下的數(shù)據(jù)坐標。投影變換是指將視圖坐標系下的數(shù)據(jù)坐標進行投影變換的坐標變換過程,本實施方式中采用正投影(OrthogonalProjection)方法對視圖坐標系下的數(shù)據(jù)坐標進行變換,具體過程為將視圖坐標系下的數(shù)據(jù)中的任意點(x,y,z)進行正投影,投影后獲得的坐標是Xp=x,yp=y,在z上設置前后兩個剪切面,分別為近平面(nearplane)和遠平面(farplane),在所述近平面(nearplane)和遠平面(farplane)之間的部分為視景體(ViewVolume),進行投影變換后的所有數(shù)據(jù)的坐標都位于所述視景體(ViewVolume)內(nèi)。上述投影變換的作用,是把三維的空間中的物體表示映射到二維的視平面上。在投影變換的過程中,可以采用各種投影方式進行坐標變換,經(jīng)過試驗測試,本實施方式所采用的正投影方法可以達到最好的視覺效果。規(guī)范化變換是指將投影后獲得的數(shù)據(jù)坐標進行規(guī)范化的轉(zhuǎn)換,具體過程為將位于近平面內(nèi)左下角的坐標點(Xniin,ymin,Zn_)映射成(-1,-1,-1),將位于遠平面內(nèi)右上角的坐標點(Xmax,ymax,zfar)映射成(1,1,1),然后根據(jù)公式<formula>formulaseeoriginaldocumentpage8</formula>將位于近平面和遠平面zf之間的所有數(shù)據(jù)的坐標都映射將規(guī)范化之后的數(shù)據(jù)的坐標根據(jù)公式<formula>formulaseeoriginaldocumentpage8</formula>變成屏幕坐標,在屏幕上所有點的z坐標都是0,在視口(viewport)的屏幕區(qū)域的左下角的坐標是(xvmin,yvmin,0),右上角的坐標是(xvmax,yvmax,0)。圖像繪制的步驟,是將坐標規(guī)范化之后的體數(shù)據(jù)采用直接體繪制的方法繪制輸出o直接體繪制(DirectVolumeRendering)是一種現(xiàn)有的體繪制方法,它可以顯示出體數(shù)據(jù)的全局,尤其是可以揭示數(shù)據(jù)的內(nèi)部特征。其基本思想是計算體素的光學屬性包括顏色和不透明度,以及模擬從特定方向射入的光線在體數(shù)據(jù)中傳播。體數(shù)據(jù)(或稱體素)的光學屬性通常由傳遞函數(shù)(TransferFunction)設置,并獲得帶有光學屬性的體數(shù)據(jù),所述傳遞函數(shù)實現(xiàn)體數(shù)據(jù)中每個體素的灰度值與光學屬性的到"1到1之間;對應關系,具體過程為本實施方式中的直接體繪制的過程為根據(jù)體數(shù)據(jù)中的灰度分布設計傳遞函數(shù),建立灰度值和光學屬性之間的對應關系,并將所述傳遞函數(shù)作為一維紋理數(shù)據(jù)存儲到顯卡的內(nèi)存中;然后模擬從指定方向射入的光線在體數(shù)據(jù)中傳播,完成三維心臟的體繪制。經(jīng)過上述步驟之后,體數(shù)據(jù)和傳遞函數(shù)都在顯卡內(nèi)存中了,然后,顯卡中的GPU就可以計算并獲得每個體數(shù)據(jù)的光學屬性,并且把圖像繪制出來,這樣充分利用了GPU用的計算能力。大大提高了速度。所述傳遞函數(shù)建立了體數(shù)據(jù)的灰度值和光學屬性之間的對應關系,以便于將帶有灰度值的體數(shù)據(jù)轉(zhuǎn)換成帶有光學屬性的體數(shù)據(jù)。設計合理的傳遞函數(shù),能夠揭示體數(shù)據(jù)的重要內(nèi)部信息和空間結(jié)構(gòu),增強重要信息、抑制不重要信息的視覺效果。本實施方式中根據(jù)體數(shù)據(jù)中的灰度分布設計傳遞函數(shù),建立灰度值和光學屬性之間的對應關系的過程為的設計過程為首先,統(tǒng)計體數(shù)據(jù)的灰度值的分布情況。本實施方式中采用灰度值統(tǒng)計圖實現(xiàn)該過程,參見圖1所示,是一個心臟的體數(shù)據(jù)的統(tǒng)計結(jié)果。圖中,橫軸表示不同心臟組織對應的灰度值,和心臟組織有關的數(shù)據(jù)的灰度值的范圍在區(qū)間[30,70],在此區(qū)間中沒有標記在橫軸上的灰度值表示該灰度值沒有出現(xiàn)在心臟的體數(shù)據(jù)中。然后,根據(jù)體數(shù)據(jù)的灰度值分布情況,確定不同灰度對應的心臟組織,并根據(jù)所述心臟組織的空間位置設置其對應的光學屬性,即不透明度和顏色值,設置完成的不透明度和顏色的集合組織成顏色查找表ColorMap;灰度值和光學屬性之間的的對應關系建立完成。在圖像繪制的過程中,根據(jù)體數(shù)據(jù)的不同心臟組織的灰度值在顏色查找表ColorMap中檢索對應的光學屬性,根據(jù)灰度_光學屬性對應公式F(g)—(R,G,B,A)(7)實現(xiàn),其中g表示灰度值,(R,G,B,A)表示該灰度對應的光學屬性,其中R、G和B表示顏色,A表示不透明度(opacity)。在設置不同灰度值光學屬性時,遵循的主要原則是通過比對心臟組織的三維相對位置,使心臟內(nèi)部的腔隙不透明度高于心臟外部的組織,不同腔隙的鏈接部分區(qū)別于腔隙本身。本實施方式中,根據(jù)圖1所示的灰度分布確定不同灰度對應的組織并根據(jù)組織的空間位置設置其對應的光學屬性,形成的心臟組織灰度值及各灰度值對應的光學屬性映射圖參見圖2所示,圖中縱軸表示對心臟體數(shù)據(jù)灰度進行統(tǒng)計得到的不同灰度值。圖中的正方形色塊表示使用灰度_光學屬性對應公式在顏色查找表ColorMap中檢索到該灰度值,據(jù)有該灰度的數(shù)據(jù)的光學屬性。各個灰度值數(shù)據(jù)的光學屬性由正方形色塊下面的四元組(R,G,B,A)表示。然后采用放射-吸收(emissionandabsorption)模型模擬光在體數(shù)據(jù)中的傳播狀態(tài),并最終產(chǎn)生沿視線方向?qū)w數(shù)據(jù)的采樣,并且沿著視線方向累計體素的顏色和不透明度的結(jié)果,最終繪制完成心臟的體繪制。每個離散的體數(shù)據(jù)的最終繪制時的顏色為<formula>formulaseeoriginaldocumentpage10</formula>(8)每個離散的體數(shù)據(jù)的最終繪制時的不透明度為<formula>formulaseeoriginaldocumentpage10</formula>(9)其中,Ci和Ai由傳遞函數(shù)設置,分別代表在第i個采樣點數(shù)據(jù)的顏色和不透明度。Ai近似表示體數(shù)據(jù)吸收的光。不透明度加權(quán)的顏色Ci近似表示沿著光線采樣點第i和第i+1個采樣之間體數(shù)據(jù)放射和吸收的光。對于顏色分量中的乘積部分表示在第i個采樣點的光在到達人的眼睛之前是不斷衰減的。使用OpenGL和Cg實現(xiàn)算法,其中OpenGL負責處理圖形的顯示,以及用戶交互,Cg用HS寫丁頁‘1^、禾呈(vertexshader)禾口片元禾呈·(fragmentshader)?;贕PU的三維心臟繪制算法可采用下述程序?qū)崿F(xiàn)Inputsegmented3Dheartvolumedataset,colorlookuptableOutput:heartimage1.VolumeTexture一VolumeDataset,ColorMap一Colorlookuptable;2.whileνinVolumeTexture3.ν=T·ν;4.clip(ν);5.ν(color)=ColorMap[v(greyLevel)];6.fori一1tosliceNum7.drawSIiceO;8.composite();上述程序段的含義為輸入為分割組織后的體數(shù)據(jù),和顏色查找表;輸出為心臟圖像。變量VolumeTexture表示存放體數(shù)據(jù)的三維紋理,VolumeDataset表示體數(shù)據(jù)的集合,ColorMap表示存放不同灰度的體數(shù)據(jù)光學屬性的一維紋理,Colorlookuptable表示顏色查找表(不同灰度值對應的光學屬性),sliceNum表示體數(shù)據(jù)沿著視線的方向的切片的數(shù)量。對每一個在三維紋理中的體素V,采用矩陣T進行坐標轉(zhuǎn)換,然后把采用Clip(V)把體素ν限制在有效的空間內(nèi),再采用ColorMap[v(greyLevel)],將體素ν的灰度值ν(greyLevel)作為索引,在顏色查找表中查找對應的一維紋理數(shù)據(jù),并根據(jù)檢索結(jié)果設置該體素的光學屬性V(Color)。對沿著視線的方向第1個切片開始一直到最后一個切片sliceNum分別作如下處理采用drawSliceO繪制當前的切片,然后采用compositeO把當前切片和前一個切片混合。處理完所有sliceNum個切片之后,最終將繪制結(jié)果顯示在視平面上。本實施方式所述的體繪制方法可以采用IntelCore2QuadCPU2.41GHz,內(nèi)存4GB,顯卡NVIDIAGF8600,顯存256MB硬件環(huán)境。使用C++語言和OpenGL實現(xiàn)程序的框架,GPU的頂點和片元程序采用Cg語言編寫,使用版本為Cg2.O。在體數(shù)據(jù)的讀取方法中,對比現(xiàn)有的Yang等人提出的加速光線投射(AcceleratedRayCasting)ARC方法、OpenGL(OpenGraphicsLibrary)固定管線法、以及本實施方式采用的OpenGL結(jié)合Cg可編程管線法共三種方法的處理時間,經(jīng)實驗獲得上述三種方法的數(shù)據(jù)讀取時間,結(jié)果參見表1所示表1不同算法讀取數(shù)據(jù)時間比較<formula>formulaseeoriginaldocumentpage11</formula>在繪制過程中,由于ARC方法很難實現(xiàn)實時的用戶交互,這里僅比較了OpenGL固定管線方法和本實施方式采用的OpenGL結(jié)合Cg可編程管線的方法的繪制效率,實驗結(jié)果如表2所示。表2不同算法平均繪制速度比較繪制方法數(shù)據(jù)大小每秒平均幀數(shù)(f/s)<formula>formulaseeoriginaldocumentpage11</formula>參見圖3-圖5所示,是對數(shù)據(jù)分類前后繪制結(jié)果的比較。使用傳遞函數(shù)進行分類后的圖像可以明顯看到心臟的輪廓、結(jié)構(gòu)以及內(nèi)部的腔隙。分類后圖像的顏色由圖1中的顏色使用OpenGL提供的函數(shù)voidglBlendFunc(GLenumsfactor,GLenumdfactor)混合而成。本發(fā)明使用GPU圖形加速技術實現(xiàn)了三維心臟數(shù)據(jù)的可視化,使用戶能夠以交互的方式觀察人心臟,相對于非GPU方法大大減少了系統(tǒng)的響應時間。本文將三維心臟數(shù)據(jù)組織成三維紋理,根據(jù)心臟數(shù)據(jù)的特點設計了傳遞函數(shù),使用矩形閉包的方法針對心臟數(shù)據(jù)設計了繪制算法。使用OpenGL和Cg對算法進行了實現(xiàn),并且使用三維的心臟數(shù)據(jù)進行了測試。根據(jù)實驗結(jié)果可以看到本文使用的方法在數(shù)據(jù)的讀取過程中相對與軟件方法在效率上有顯著提高,在繪制的過程中,實現(xiàn)了實時的用戶交互。權(quán)利要求基于GPU加速的實時三維心臟數(shù)據(jù)體繪制方法,其特征在于它是基于帶有支持Cg語言的顯卡的PC機實現(xiàn)的,所述體繪制方法的具體包括數(shù)據(jù)讀取和預處理的步驟、數(shù)據(jù)坐標變換的步驟和圖像繪制的步驟,其中數(shù)據(jù)讀取和預處理的步驟,是把待繪制的心臟的多個切片數(shù)據(jù)組織成體數(shù)據(jù)文件,并將所述體數(shù)據(jù)文件打包成三維紋理數(shù)據(jù)包后,存儲到顯卡的內(nèi)存中;將待繪制的心臟的切片數(shù)據(jù)所表示的切片圖像的寬和高分別作為體數(shù)據(jù)的x,y軸,將待繪制的心臟的所有切片數(shù)據(jù)的數(shù)量作為體數(shù)據(jù)的z軸;數(shù)據(jù)坐標變換的步驟,是將數(shù)據(jù)預處理的步驟獲得的三維紋理數(shù)據(jù)包中的數(shù)據(jù)坐標轉(zhuǎn)換成屏幕坐標;圖像繪制的步驟,是將坐標規(guī)范化之后的體數(shù)據(jù)采用直接體繪制的方法繪制輸出。2.根據(jù)權(quán)利要求1所述的基于GPU加速的實時三維心臟數(shù)據(jù)體繪制方法,其特征在于,把待繪制的心臟的多個切片數(shù)據(jù)組織成體數(shù)據(jù)文件的過程為將待繪制的心臟的每個切片數(shù)據(jù)中的頭信息刪除,然后將刪除頭信息之后的所有切片數(shù)據(jù)進行調(diào)整、形成滿足三維紋理打包的要求體數(shù)據(jù)文件。3.根據(jù)權(quán)利要求1所述的基于GPU加速的實時三維心臟數(shù)據(jù)體繪制方法,其特征在于,數(shù)據(jù)坐標變換的步驟的具體過程為將三維數(shù)據(jù)的坐標依次進行視圖變換、投影變換和規(guī)范化變換,最終獲得屏幕坐標。4.根據(jù)權(quán)利要求3所述的基于GPU加速的實時三維心臟數(shù)據(jù)體繪制方法,其特征在于,視圖變換是指將數(shù)據(jù)坐標進行視圖的變換,具體過程為將視圖坐標的原點P的坐標設定為世界坐標系下的坐標P=(x0,10,Z0),則坐標平移變換公式為<formula>formulaseeoriginaldocumentpage2</formula>坐標旋轉(zhuǎn)變換公式為<formula>formulaseeoriginaldocumentpage2</formula>其中,單位向量U,V,η是世界坐標系下的參考幀的三個坐標軸的三個方向向量將平移變換公式和旋轉(zhuǎn)變換公式相乘,獲得從世界坐標系到視圖坐標系下的視圖坐標變換公式<formula>formulaseeoriginaldocumentpage3</formula>將數(shù)據(jù)坐標與視圖坐標變換公式相乘,獲得視圖坐標系下的數(shù)據(jù)坐標。5.根據(jù)權(quán)利要求3所述的基于GPU加速的實時三維心臟數(shù)據(jù)體繪制方法,其特征在于,所述投影變換是指將視圖坐標系下的數(shù)據(jù)坐標進行投影變換的坐標變換過程,采用正投影方法對視圖坐標系下的數(shù)據(jù)坐標進行變換,具體過程為將視圖坐標系下的數(shù)據(jù)中的任意點(X,1,ζ)進行正投影,投影后獲得的坐標是xp=X,yp=y,在Z上設置前后兩個剪切面,分別為近平面和遠平面,在所述近平面和遠平面之間的部分為視景體,進行投影變換后的所有數(shù)據(jù)的坐標都位于所述視景體內(nèi)。6.根據(jù)權(quán)利要求3所述的基于GPU加速的實時三維心臟數(shù)據(jù)體繪制方法,其特征在于,規(guī)范化變換是指將投影后獲得的數(shù)據(jù)坐標進行規(guī)范化的轉(zhuǎn)換,具體過程為將位于近平面內(nèi)左下角的坐標點(Xmin,ymin,ζηε)映射成(-1,-1,-1),將位于遠平面內(nèi)右上角的坐標點(Xmax,ymax,Zfar)映射成(1,1,1),然后根據(jù)公式<formula>formulaseeoriginaldocumentpage3</formula>將位于近平面和遠平面Zto之間的所有數(shù)據(jù)的坐標都映射到-1到1之間;將規(guī)范化之后的數(shù)據(jù)的坐標根據(jù)公式<formula>formulaseeoriginaldocumentpage3</formula>變成屏幕坐標,在屏幕上所有點的ζ坐標都是0,在視口的屏幕區(qū)域的左下角的坐標是(XVmin'yvmin,0),右上角的坐標是(XVmax,yvmax,0)。7.根據(jù)權(quán)利要求1所述的基于GPU加速的實時三維心臟數(shù)據(jù)體繪制方法,其特征在于圖像繪制的步驟采用直接體繪制的方法實現(xiàn),直接體繪制的過程為根據(jù)體數(shù)據(jù)中的灰度分布設計傳遞函數(shù),建立灰度值和光學屬性之間的對應關系,并將所述傳遞函數(shù)作為一維紋理數(shù)據(jù)存儲到顯卡的內(nèi)存中;然后模擬從指定方向射入的光線在體數(shù)據(jù)中傳播,完成三維心臟的體繪制。8.根據(jù)權(quán)利要求7所述的基于GPU加速的實時三維心臟數(shù)據(jù)體繪制方法,其特征在于,所述根據(jù)體數(shù)據(jù)中的灰度分布設計傳遞函數(shù),建立灰度值和光學屬性之間的對應關系的過程為首先,統(tǒng)計體數(shù)據(jù)的灰度值的分布情況;然后,根據(jù)體數(shù)據(jù)的灰度值分布情況,確定不同灰度對應的心臟組織,并根據(jù)所述心臟組織的空間位置設置其對應的光學屬性,即不透明度和顏色值,設置完成的不透明度和顏色的集合組織成顏色查找表ColorMap;灰度值和光學屬性之間的的對應關系建立完成。9.根據(jù)權(quán)利要求7所述的基于GPU加速的實時三維心臟數(shù)據(jù)體繪制方法,其特征在于,模擬從指定方向射入的光線在體數(shù)據(jù)中傳播,完成心臟數(shù)據(jù)的體繪制的過程為采用放射一吸收模型模擬光在體數(shù)據(jù)中的傳播狀態(tài),并最終產(chǎn)生沿視線方向?qū)w數(shù)據(jù)的采樣,并且沿著視線方向累計體素的顏色和不透明度的結(jié)果,逐一獲得每個體素的最終繪制顏色和不透明度,進而最終繪制完成心臟的體繪制。10.根據(jù)權(quán)利要求9所述的基于GPU加速的實時三維心臟數(shù)據(jù)體繪制方法,其特征在于,每個體素的最終繪制顏色和不透明度的獲得方法為每個離散的體數(shù)據(jù)的最終繪制時的顏色為<formula>formulaseeoriginaldocumentpage4</formula>每個離散的體數(shù)據(jù)的最終繪制時的不透明度為<formula>formulaseeoriginaldocumentpage4</formula>其中,Ci和&由傳遞函數(shù)設置,分別代表在第i個采樣點數(shù)據(jù)的顏色和不透明度,Ai近似表示體數(shù)據(jù)吸收的光。全文摘要基于GPU加速的實時三維心臟數(shù)據(jù)體繪制方法,屬于圖形圖像處理領域。本發(fā)明解決了現(xiàn)有三維心臟數(shù)據(jù)的體繪制速度慢、對計算機性能要求高的問題。本發(fā)明的方法是基于GPU加速的實時三維心臟數(shù)據(jù)體繪制方法是基于帶有支持Cg語言的顯卡的PC機實現(xiàn)的,所述體繪制方法的具體包括數(shù)據(jù)讀取和預處理的步驟,是把待繪制的心臟的多個切片數(shù)據(jù)組織成體數(shù)據(jù)文件,并將所述體數(shù)據(jù)文件打包成三維紋理數(shù)據(jù)包后,存儲到顯卡的內(nèi)存中;數(shù)據(jù)坐標變換的步驟,是將數(shù)據(jù)預處理的步驟獲得的三維紋理數(shù)據(jù)包中的數(shù)據(jù)坐標轉(zhuǎn)換成屏幕坐標;圖像繪制的步驟,是將坐標規(guī)范化之后的體數(shù)據(jù)采用直接體繪制的方法繪制輸出。本發(fā)明還適用于其它復雜結(jié)構(gòu)的三維臟器的體繪制。文檔編號G06T17/00GK101814193SQ201010120708公開日2010年8月25日申請日期2010年3月9日優(yōu)先權(quán)日2010年3月9日發(fā)明者左旺孟,張宏志,張雷,王寬全,袁永峰申請人:哈爾濱工業(yè)大學