紋理映射體繪制的3d java 實現(xiàn)的方法
【技術領域】
[0001]本方法是涉汲計算機語言中的JAVA3D方面的技術。
【背景技術】
[0002]為了更好地診斷和治療各種心臟病,更安全地研發(fā)治療心臟病藥物,科學家提出用計算機模擬人的心臟,由此產(chǎn)生了虛擬心臟)技術。它應用計算機強有力的計算和圖形顯示能力,通過給計算機心臟模型賦予活體心臟所具有的各種特性,使之從形態(tài)、結(jié)構和功能等方面逼真地再現(xiàn)人體心臟的活動過程。
[0003]虛擬心臟是在CT和MRI成像技術的基礎上建立真實幾何形狀的心臟模型。
【發(fā)明內(nèi)容】
[0004]從20世紀80年代開始,許多可視化的體繪制方法被提出并成功地應用于醫(yī)學領域。體繪制技術一般可分為:間接體繪制法IVR和DVR.。
[0005]間接體繪制法,首先對整個體數(shù)據(jù)進行等值表面分割定義,接著用各種幾何元擬合表面,最后繪制出所有的幾何元。代表性的間接體繪制方法是等值面法,典型的等值面算法是移動立,對等值面連接問題的進一步研究引出了其他改進算法,如分解立方體法方體法Archingtetrahedra方法。在顯示三維CT醫(yī)學圖像數(shù)據(jù)時,間接體繪制法是經(jīng)常采用的方法,結(jié)合紋理映射技術和多平面重建方法,可以把任意切片上原始的體素畫在三維圖像給定的表面,以增加實體感,而且這種方法由于利用了計算機圖形硬件的加速功能,在如今的高檔PC上可以實時顯示三維醫(yī)學圖像,這種技術經(jīng)常被用于計算機輔助手術的三維醫(yī)學模型重建。
[0006]直接體繪制法把體素當作基本元,認為體素是一種本身既可發(fā)光又可吸收光線的半透明物質(zhì),體繪制時根據(jù)體素的灰度值對每一體素賦予阻光度值和顏色值,再根據(jù)各體素的灰度梯度及光照模型)計算出各體素的光照強度,然后將投射到圖像平面上同一像素點的各體素的阻光度值和顏色值綜合在一起,形成最終的三維圖像。
[0007]體繪制算法也可根據(jù)所用的投影策略不同分為以對象空間為序(object order )的算法一正向算法又稱為體素投影法(voxel project1n)和以圖像空間為序(imageorder )的算法一逆向算法又稱為光線投射法(ray casting)。以對象空間為序的體繪
制算法遍歷整個體數(shù)據(jù)空間的體素,并投射體素到成像屏,典型的為Splatting算法。以圖像空間為序的體繪制算法分為3種主要方法:平行光線投射法、透視光線投射法及光線跟蹤法。
[0008]多平面重建是一種被廣泛應用的交互式瀏覽體數(shù)據(jù)的可視化方法,由于醫(yī)學體數(shù)據(jù)的三維特性,當體數(shù)據(jù)是各向同性時,可以通過重新排列指定截面內(nèi)體素的位置次序,而很容易地獲得該截面內(nèi)的體素分布圖像。如指定截面垂直XYZ中某一主軸方向,即可獲得符合醫(yī)生習慣的水平面、冠狀面、矢狀面斷層圖像,更復雜的多平面重建方法是指定任意方向的截面顯示,或者沿一曲線形成切割曲面顯示。
[0009]三維紋理映射利用硬件實現(xiàn)三維可視化,但一般只有高檔的圖形工作站才配有其所需的昂貴的三維紋理映射硬件。三維紋理映射把體數(shù)據(jù)分類及轉(zhuǎn)換為RGB值并裝入三維紋理內(nèi)存,在繪制過程中通過映射和視線方向垂直的一系列體數(shù)據(jù)的截平面,并在幀緩存中組合這些平面來取得三維繪制效果。
[0010]Java 3D實現(xiàn)的紋理映射繪制$ 二維紋理映射的體繪制算法是基于紋理映射體繪制算法中最基本的一種,它是按體數(shù)據(jù)正交方向?qū)⒍S紋理切片堆疊起來達到三維的效果,實現(xiàn)步驟如下。
[0011]I)準備紋理圖。由給定的轉(zhuǎn)換函數(shù)將體數(shù)據(jù)值轉(zhuǎn)換成相應的光強度、顏色及不透明度,構造出平行于XY平面、平行于XZ平面和平行于YZ平面的二維紋理。
[0012]2)裝載紋理。按照視角的方向,沿Z軸Y軸和X軸的順序依次裝載紋理切片到ImgComponenet2D 類中。
[0013]3)創(chuàng)建 Appearance。將上一步的 ImageCompenent2D 裝載到 Textrue2D 中,并將Texture2D 對象設置到 Appearance 中。
[0014]4)映射。用TextCoordGenerat1n類對象確定被繪制的二維表面上點與紋理空間坐標的對應關系。
[0015]5) 二維紋理逐片繪制。
[0016]三維紋理映射的體繪制算法與基于二維紋理映射體繪制算法最大的區(qū)別在于紋理切片的生成,三維紋理是根據(jù)視線方向確定紋理坐標,然后根據(jù)紋理坐標產(chǎn)生紋理切片,其算法主要步驟如下:
I)準備紋理圖。由給定的轉(zhuǎn)換函數(shù)將體數(shù)據(jù)值轉(zhuǎn)換成相應的光強度、顏色及不透明度,構造出三維紋理。
[0017]2)裝載紋理。按照視角的方向為沿Z軸、Y軸和X軸的順序依次裝載紋理切片到ImageComponent3D 類中。
[0018]3)創(chuàng)建 Appearance。將上一步的 ImageComponent3D 裝載到 Textrue3D 中,并將Textrue3D 對象設置到 Appearance 中。
[0019]4)映射。用TextCoordGenerat1n類對象確定被繪制的三維物體上點與紋理空間坐標的對應關系。
[0020]5)三維紋理逐片繪制。
[0021]取自Ge公司的16層螺旋CT掃描儀對心臟進行掃描,得到的一組123層CT心臟斷層,用上述方法得到的3D重構結(jié)果。
【主權項】
1.紋理映射體繪制的3DJAVA實現(xiàn)的方法其特征是方法獲取CT心臟斷層數(shù)據(jù),對其進行預處理,在此基礎上進行圖像的濾波、分割、配準及裁剪,最后實現(xiàn)基于紋理映射體繪制的三維重構。
2.根據(jù)權利要求1其功能為:1)獲取數(shù)據(jù)的數(shù)據(jù)讀取模塊;2)對圖像進行灰度級統(tǒng)計的數(shù)據(jù)分析模塊;3)對二維數(shù)據(jù)進行濾波、分割、配準和裁剪等預處理的預處理模塊;4)用三維數(shù)組記錄體數(shù)據(jù)并存儲在文;件中的體數(shù)據(jù)封裝模塊;5)對數(shù)據(jù)進行基于紋理映射的體繪制的體繪制模塊;6)交互式瀏覽體數(shù)據(jù)的瀏覽模塊。
3.根據(jù)權利要求2中獲取數(shù)據(jù)的數(shù)據(jù)讀取模塊,則其用Java語言實現(xiàn)了根據(jù)用戶提供的路徑讀取文件頭信息以獲得文件類型,然后根據(jù)文件類型的不同打開圖像文件。
4.根據(jù)權利要求2二維紋理映射的體繪制算法是基于紋理映射體繪制算法中最基本的一種,它是按體數(shù)據(jù)正交方向?qū)⒍S紋理切片堆疊起來達到三維的效果。
5.根據(jù)權利要求3則步驟準備紋理圖,裝載紋理,創(chuàng)建Appearance,映射,二維紋理逐片繪制。
6.根據(jù)權利要求4則,三維紋理是根據(jù)視線方向確定紋理坐標,然后根據(jù)紋理坐標產(chǎn)生紋理切片。
【專利摘要】用Java和Java3D在微機環(huán)境實現(xiàn)的一個虛擬心臟系統(tǒng)原型。其主要功能有:CT心臟斷層數(shù)據(jù)讀取、瀏覽;圖像的濾波、分割、配準及圖像裁剪;三維重構及多平面重建等。其配置為:CPUPentium(R)4,3.0GHz,內(nèi)存512MB。重點討論了虛擬心臟系統(tǒng)原型中基于紋理映射的體繪制方法,不同于以往的方法,采用軟件方法(Java3D)實現(xiàn)了紋理映射硬件的功能,由于不需要三維紋理映射硬件的支持,降低了硬件成本。下一步的研究工作是改善三維紋理映射技術生成的明暗效果有所欠缺的問題。隨著計算機硬件技術的發(fā)展,及三維紋理映射增加明暗效果的進一步研究,相信三維紋理映射算法將在普通PC上得到成功實現(xiàn)。
【IPC分類】G06T15-08
【公開號】CN104616344
【申請?zhí)枴緾N201310537078
【發(fā)明人】不公告發(fā)明人
【申請人】鎮(zhèn)江華揚信息科技有限公司
【公開日】2015年5月13日
【申請日】2013年11月5日