基于gpu的三維醫(yī)學(xué)圖像混合可視化系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]一種關(guān)于計(jì)算機(jī)領(lǐng)域中的三維圖像技術(shù)方面的領(lǐng)域。
【背景技術(shù)】
[0002]從20世紀(jì)70年代末開始,許多數(shù)據(jù)場可視化繪制方法被提出并成功地應(yīng)用于醫(yī)學(xué)領(lǐng)域。目前許多醫(yī)學(xué)圖像處理系統(tǒng),例如三維放射治療計(jì)劃系統(tǒng)、虛擬人體系統(tǒng)、計(jì)算機(jī)輔助手術(shù)導(dǎo)航系統(tǒng)、醫(yī)學(xué)影像工作站等,都包含了三維圖像的顯示部分,但各個(gè)部分都是單獨(dú)重新構(gòu)造的。一些已經(jīng)開發(fā)的專用體視化系統(tǒng),由于其不具有醫(yī)學(xué)圖像三維顯示的所有功能,同時(shí)又缺乏一定的開放性與擴(kuò)充性,很難作為二次開發(fā)的工具。
[0003]三維數(shù)據(jù)場的可視化方法主要有面繪制和體繪制兩類]。面繪制可以有效地繪制三維物體的表面,但缺乏內(nèi)部信息的表達(dá);體繪制以體素作為基本單元,直接由體數(shù)據(jù)生成最終的圖像,也稱直接體繪制,其能夠表示對象體的內(nèi)部信息,但是計(jì)算量很大,盡管采用了許多種加速算法,仍然不能在普通PC機(jī)上實(shí)現(xiàn)中等規(guī)模體數(shù)據(jù)(比如醫(yī)學(xué)三維數(shù)據(jù))的實(shí)時(shí)動態(tài)顯示。近年來,在游戲和娛樂市場的巨大推動下,PC圖形硬件方面的技術(shù)不斷進(jìn)步,性能不斷提高,許多原來只有在高檔圖形工作站的三維紋理映射硬件才具有的三維紋理映射功能,在為普通PC機(jī)配備的中高等顯卡上也已具備。用三維紋理映射功能來進(jìn)行體數(shù)據(jù)的直接體繪制,可以在達(dá)到同等效果的前提下,大大提高繪制速度。在醫(yī)學(xué)領(lǐng)域的實(shí)用系統(tǒng)中,這兩種顯示方法都很有必要,將兩種繪制結(jié)果混合顯示可以充分發(fā)揮各自的優(yōu)勢,豐富圖像信息。Kreeger[ 2 ]等采用硬件三維紋理映射與Z2Buffer實(shí)現(xiàn)了混合場景的繪制,雖然可以進(jìn)行快速的渲染,但由于采用了 Pre2Shaded技術(shù),從而導(dǎo)致結(jié)果圖像質(zhì)量不高。新一代圖形處理器的可編程渲染器改變了以往GPU固定管道線的繪制方式,使得程序員能夠干預(yù)圖像生成過程。
【發(fā)明內(nèi)容】
[0004]新一代圖形處理器的標(biāo)志是提供了圖形硬件的可編程能力,即集成了對三角形頂點(diǎn)進(jìn)行幾何變換和光照計(jì)算的點(diǎn)元渲染器(V ertex shader)和對像素進(jìn)行著色的片元渲染器(F ragm en t shader或P ixel shader)。可編程渲染器并沒有完全替代傳統(tǒng)處理器中的頂點(diǎn)管道和像素管道的固定處理單元。
[0005]為了利用現(xiàn)代圖形處理器的可編程性,圖形程序員需要編寫在圖形處理器上運(yùn)行的程序,這種程序稱為著色程序(Shader)。圖形處理器通過通用的3D A P I (DirectX50 penGL )向圖形程序員提供可編程能力。為了與面繪制部分保持一致,本文采用OpenGL接口實(shí)現(xiàn)著色程序。
[0006]在體積繪制中最重要和最大的工作量就是采樣和插值計(jì)算。由于體積數(shù)據(jù)本身就是一種采樣后得到的離散數(shù)據(jù),這個(gè)過程也稱為重采樣。為了繪制出一幅高質(zhì)量的體積圖像,這些重采樣點(diǎn)的對應(yīng)數(shù)值需要仔細(xì)地計(jì)算。把體積數(shù)據(jù)作為三維紋理,可以利用圖形硬件的紋理插值功能,快速得到重采樣點(diǎn)的數(shù)值。
[0007]三維數(shù)據(jù)場的分類是指將傳輸函數(shù)作用于體數(shù)據(jù),給體數(shù)據(jù)各點(diǎn)賦顏色值和不透明值。分類是整個(gè)可視化算法中非常重要的一步,只有對三維數(shù)據(jù)值進(jìn)行正確的分類,才能經(jīng)過后續(xù)處理得出合理的圖像。分類方法主要有插值前分類和插值后分類[7 ]。在基于三維紋理的直接體繪制中,如果采用插值前分類方法,作為三維紋理的是已經(jīng)對體數(shù)據(jù)分類好的顏色值和不透明度值,不僅需要4倍的存儲空間(R,G,B,A四個(gè)通道,即體數(shù)據(jù)大小3 4),而且采樣時(shí)插值的對象是顏色值和不透明度值,而不是原始的體數(shù)據(jù)值,會降低最終的圖像質(zhì)量[7 ]。插值后分類需要把原始的體數(shù)據(jù)作為三維紋理,這樣采樣的對象就是原始體數(shù)據(jù),采樣點(diǎn)分類后再參與圖像合成。
[0008]插值后分類需要在提取紋理之后再對其作用傳輸函數(shù),得到與之對應(yīng)的RGBA值,這在原始的固定圖形渲染管道中是無法實(shí)現(xiàn)的,因?yàn)槌绦騿T無法在紋理采樣后插入一個(gè)步驟再送入幀緩存參與融合,本文使用的Gefo rce 6800圖形卡已經(jīng)具有可編程功能,利用可編程功能可以很方便地實(shí)現(xiàn)插值后分類方法。
[0009]圖形卡的片元處理器具有紋理提取指令,插值后分類可以用紋理依賴提取實(shí)現(xiàn),紋理依賴提取示意圖如圖3所示。即將第I個(gè)紋理的值作為下一個(gè)紋理的坐標(biāo)來提取紋理,因此可以把三維體數(shù)據(jù)紋理作為第I個(gè)紋理,傳輸函數(shù)以第2個(gè)一維紋理(一維傳輸函數(shù))或二維紋理(二維傳輸函數(shù))的方式表示,傳輸函數(shù)以二維紋理方式表示。這樣提取到的第I個(gè)紋理的值是紋理插值后的值,以這個(gè)值去提取第2個(gè)紋理相當(dāng)于作用傳輸函數(shù)進(jìn)行分類,從而實(shí)現(xiàn)了插值后分類。用GL SL寫P ixelshader,其代碼是vec4 index = tex tu re3D (m y3DTex tu re, gl_ TexCoo rd[0 ])。
[0010]gl- F ragCo 1 r= tex tu re2D (Dependen tTex tu2 re, index, x, index.y) °
[0011]傳輸函數(shù)一直以來都是直接體繪制的重要問題。它主要映射了紋理標(biāo)量值到RGBA的顏色形式,是決定某些重要結(jié)構(gòu)和細(xì)節(jié)顯示的關(guān)鍵。通過修改依賴紋理可以實(shí)現(xiàn)傳輸函數(shù)的實(shí)時(shí)交互修改。
[0012]一、表面提??;
表面繪制就是將數(shù)據(jù)場中感興趣的部分提取出來并以面片的方式表達(dá),常用的是等值面。提取等值面的方法分為兩類:(I)切片級重建方法,即先在一系列切片上生成等值線,然后連接等值線得到等值面;(2)體素級重建方法,即直接從體數(shù)據(jù)中抽取等值面。第I類方法由于在切片上生成等值線方法很多,所以靈活性好,但是等值線對應(yīng)和拼接以及對分叉情況的處理都比較困難。第2類方法中最有代表性的是文獻(xiàn)[8 ]提出的M arch ing Cubes 算法。
[0013]二、組織管理;
組織表面可采用多種方法提取,從一個(gè)體數(shù)據(jù)中可提取出若干組織,所以對這些組織的管理并按照其相對坐標(biāo)正確顯示顯得非常重要。場景圖提供了一種很好的數(shù)據(jù)管理方式。場景圖是指一種數(shù)據(jù)結(jié)構(gòu),場景圖是有向無環(huán)圖,由各個(gè)節(jié)點(diǎn)連接而成。場景圖的節(jié)點(diǎn)分為組節(jié)點(diǎn)和葉子節(jié)點(diǎn),組節(jié)點(diǎn)為整個(gè)場景圖的骨架,而葉子節(jié)點(diǎn)則包含了形體對象、屬性等具體信息。整個(gè)場景圖只有一個(gè)根節(jié)點(diǎn),代表整個(gè)體數(shù)據(jù),而提取出的各個(gè)組織作為其子節(jié)點(diǎn)。如果某些組織作為一個(gè)整體,可以把這些組織掛在同一個(gè)組節(jié)點(diǎn)下,在把該組節(jié)點(diǎn)作為一個(gè)子節(jié)點(diǎn)放入根節(jié)點(diǎn)下。基于場景圖的這些特點(diǎn),本文設(shè)計(jì)的可視化系統(tǒng)應(yīng)用場景圖進(jìn)行組織管理。
[0014]三、面繪制和體繪制的結(jié)合;
面繪制可以簡潔地反映復(fù)雜物體的三維結(jié)構(gòu),但是面繪制技術(shù)繪制的是從體數(shù)據(jù)中提取的表面,不能全面表達(dá)三維體數(shù)據(jù)中所包含的信息;體繪制直接從體數(shù)據(jù)中計(jì)算得到最后圖像,但是基于體繪制方法繪制等值面需要有表面的法向量信息,將體元的灰度梯度存儲在三維紋理數(shù)據(jù)中的RGB分量中,灰度值存儲在A Ipha分量中,然后利用硬件支持的A Ipha test功能來顯示等值面,這種方法非常有效,但是需要比單純存儲灰度值多出3倍的顯存空間消耗。本文采用面繪制方法繪制等值面,采用體繪制方法表達(dá)體數(shù)據(jù)的其他信息,利用GPU的可編程特性將兩種圖像混合顯示,這樣不需要在三維紋理數(shù)據(jù)中存儲梯度值,只需要存儲灰度值,節(jié)約了顯存空間,而且能夠同時(shí)顯示表面和內(nèi)部信息。這種面繪制和體繪制相結(jié)合的繪制方法,可以有效地保留面繪制和體繪制的優(yōu)勢。
[0015]基于三維紋理映射體繪制的基本原理是應(yīng)用顯卡的A Ipha混合技術(shù),對代理幾何面采樣數(shù)據(jù)進(jìn)行從后向前(或從前向后)的融合,從而近似實(shí)現(xiàn)直接體繪制算法中的積分函數(shù)。而面繪制方法則是采用三角面片逼近等值面,利用顯卡的固定渲染管道進(jìn)行表面渲染。由于這兩種繪制方法在繪制時(shí)候的OpenGL狀態(tài)參數(shù)不一樣,直接進(jìn)行混合繪制可能會導(dǎo)致只有一種繪制結(jié)果正確顯示或者沒有圖像繪制到屏幕,本文應(yīng)用顯卡的Render2to2tex tu re功能和GPU的可編程特性解決這個(gè)問題。Render2to2tex tu re功能利用Render to target擴(kuò)展實(shí)現(xiàn),就是把繪制結(jié)果輸出到紋理單元,從而可以作為片元渲染器的輸入紋理,再次參與運(yùn)算。
【主權(quán)項(xiàng)】
1.基于GPU的三維醫(yī)學(xué)圖像混合可視化系統(tǒng)其特征是基于GPU的直接體繪制,基于三維紋理映射的體繪制,插值后分類。
2.根據(jù)權(quán)利要求1表面繪制就是將數(shù)據(jù)場中感興趣的部分提取出來并以面片的方式表達(dá),常用的是等值面。
3.根據(jù)權(quán)利要求2提取等值面的方法分為兩類:(I)切片級重建方法,即先在一系列切片上生成等值線,然后連接等值線得到等值面;(2)體素級重建方法,即直接從體數(shù)據(jù)中抽取等值面。
4.根據(jù)權(quán)利要求3則由于在切片上生成等值線方法很多,所以靈活性好,但是等值線對應(yīng)和拼接以及對分叉情況的處理都比較困難。
5.根據(jù)權(quán)利要求3則最是March ing Cubes算法。
【專利摘要】實(shí)現(xiàn)了一個(gè)基于GPU的醫(yī)學(xué)圖像混合可視化系統(tǒng),該系統(tǒng)采用三維紋理映射的方法實(shí)現(xiàn)直接體繪制,利用GPU的可編程特性完成體繪制方法中的插值后分類算法和傳輸函數(shù)的傳遞及實(shí)時(shí)修改,采用OpenGL技術(shù)實(shí)現(xiàn)表面的繪制,并基于場景圖結(jié)構(gòu)實(shí)現(xiàn)對表面數(shù)據(jù)的管理。面繪制和體繪制部分都采用OpenGL實(shí)現(xiàn),運(yùn)用OpenGL的融合機(jī)制,系統(tǒng)實(shí)現(xiàn)了面繪制和體繪制的混合顯示。本系統(tǒng)大大提高了體繪制的速度,有效地保留了面繪制和體繪制的優(yōu)勢,在保證繪制速度的基礎(chǔ)上豐富了圖像信息。
【IPC分類】G06T15-00
【公開號】CN104599311
【申請?zhí)枴緾N201310528014
【發(fā)明人】不公告發(fā)明人
【申請人】鎮(zhèn)江華揚(yáng)信息科技有限公司
【公開日】2015年5月6日
【申請日】2013年10月31日