摘要:體繪制方法是當前研究的一個熱點問題, 它的應用遍及醫學、地質學、物理學、和科學計算等諸多領域。但目前它仍處于發展階段, 有許多問題都有待于進一步的研究。該文對體繪制方法中的若干算法進行了研究與比較,實現的算法是基于開發平臺windows SDK,用C語言和原始的API編寫Windows程序,以提供最佳的性能、最強大的功能和最大的靈活性。
關鍵詞:可視化技術;體繪制;光線投射算法
中圖分類號:TP391文獻標識碼:A文章編號:1009-3044(2009)25-7196-02
The Research and Enablement of Volume Rendering Method
DING Yuan-yuan, ZHANG Wen-qiang
(Xi'an University of Architecture and Technology, Xi'an 710055, China)
Abstract: Currently, the research of volume rendering is moving into top gear, its applied all over the medical science, geology, physic and science compute etc. many realms. But it still is placed in development stage currently, there are many problems to be resolved in the further research.This article reseaches some calculate ways on the visualization technology to the picture and the algorithm is based on the development flat——windows SDK.Using C and the native APIs write programs for Windows. However, this approach offers you the best performance, the most power, and the greatest versatility in exploiting the features of Windows.
Key words: visualization technology; volume rendering; ray-casting methods
隨著一些成像技術的產生和發展,人們可以得到二維數字斷層圖像序列。為進一步模擬操作提供視覺交互手段,需要將二維斷層圖像序列轉換成具有直觀立體效果的圖像。基于這一背景提出了可視化技術。體繪制是科學可視化的主要組成部分之一,它研究的是體數據在計算機中的表示、變換、操作和顯示等問題,其目的是探查體數據中所蘊含的物體,使我們能夠看到物體內部原本不可見的復雜結構。體現化的出現給傳統計算機圖形學帶來一場革命,同時也展示出無比廣闊的應用前景。
實現體繪制具有多方面重要意義,它是發現和理解科學計算過程中各種現象的有力工具。體繪制可以極大的提高科學計算數據的處理質量和速度,實現科學計算工具和環境的現代化。體繪制的任務和目的是要把體數據中蘊藏的信息挖掘出來, 并以人的視覺系統能夠接受的形式顯示在人們面前。體繪制技術在最近的十年里發展迅速,但是目前它仍處于發展階段, 有許多問題有待進一步的研究加以解決。
1 圖像類型轉換
本文進行分析的體數據是通過掃描設備得到的以.raw為后綴的圖像,raw是未經處理、也未經壓縮的圖片格式,記錄了由拍攝所產生的一些原數據的文件。由于本文需要對圖像進行類型調整,所以選擇raw格式的圖像,然后通過給.raw為后綴的圖像加入文件頭來改變圖像的類型,以適應系統程序的需求。
加入文件頭的圖像是由文件頭和文件數據兩部分組成。給圖像加入的文件頭數據結構中,它包含算法所要用到的一些圖像的屬性信息。本文算法中其結構定義如下:
struct myDataHead
{short x; // 圖像的長
short y; // 圖像的寬
short z; // 圖像的層厚
short sBitCount; // 圖像中的一個像素所占位數
} FileHead;
程序中顯示出來的圖像均為加入文件頭的新類型文件。
2 體繪制概述
2.1 體數據
體數據可以看成是在有限空間中對一種或者多種物理屬性的一組離散采樣,它可以表示成:f (x),{x}是n維空間的采樣點的集合。
在三維體數據空間中,如圖1所示,每一個小長方體被稱為體素。體素是組成體數據的最基本單位。通常有兩種體素定義, 一種是把體素定義為中心點在采樣點上的小長方體,這個小長方體內的值是不變的,都等于該采樣點的采樣值。另一種是以八個相鄰的網格點為頂點的小長方體當作一個體素,這個小長方體內的值是變化的, 體素內任一點的值可以用八個定點上采樣值的三線性差之計算出來。因此,三維體數據可以看成是由許許多多個體素組成的。
2.2 體繪制的總體框架
體繪制是處理和分析從實驗獲得的、掃描器測得的或者由計算模型合成的體數據,并對這些體數據進行變換、顯示等操作,其目的是讓人們更清楚地認識蘊涵于體數據之中的復雜結構。三維體視化的第一個步驟就是圖象獲取。通過圖象獲取設備對真實物體進行掃描而得到一組二維斷層圖象,也可以是對計算模型的離散采樣以構成二維斷層圖象。
對體數據進行顯示基本有兩種方法,一種是先進行物體三維重建,然后利用計算機圖形學的技術對重建的表面進行顯示,這種方法稱為基于表面的顯示方法。另一種方法是直接對體數據進行顯示,稱之為基于體素的顯示或直接體視方法。不同的顯示方法生成的顯示圖象的效果是不一樣的。顯示圖象以二維陣列形式存在,每個象素包含一個顏色值。這種具有三維立體感的顯示圖象被稱為三維圖象,其目的是要與二維斷層圖象區分開來。
2.3 三維空間規則數據場的直接體繪制
直接體繪制算法的實質:三維空間分布在離散網格點上的數據一般是由三維連續的數據場經過斷層掃描,有限元分析或隨機采樣后作插值運算取得的。圖形設備屏幕上的二維圖象則是由存放在楨緩存中的二維離散信號經圖形硬件重構組成。因此,直接體繪制算法的作用就是將離散分布的三維數據場,按照一定的規則轉換為圖形顯示設備楨緩存中的二維離散信號,即生成每個象素點顏色的R,G,B值。要將一個離散分布的三維數據場轉換為二維離散信號,需要進行重新采樣。而且,不僅需要計算每一個數據值對二維圖象的貢獻,還需要將全部數據值對二維圖象的貢獻都合成起來。因此,盡管有多種不同的直接體繪制算法,但其實質均為重新采樣與圖象合成。
3 體繪制的光線投射算法
3.1 光線投射法的基本過程
從像平面上每一個像素點出發,沿視線方向發出一條射線,并進入三維數據場。隨著射線的傳播,把它所遇到的體素的顏色和阻光度進行累積與合成,并把當前的顏色作為該像素的顏色寫到幀緩存中去,從而得到最終圖像。
這里主要介紹三種基于光線投射的算法:累加求和算法、最大密度投影算法、斷面切片算法,在執行方式上存在一定差別。
3.1.1 累加求和算法
累加求和算法是每一個像素從像平面上出發沿所規定的軸線方向發出射線進入體素空間后,隨著射線的傳播取它所遇到的體素的像素相加,然后再求出平均值寫到緩存中。圖2描述的是按累加求和算法得出的圖像。
3.1.2 最大密度投影算法
最大密度投影算法是每一個像素點從像平面上出發沿所規定的軸線方向發出射線進入體素空間后,隨著射線的傳播取它所遇到的體素的像素最大值寫到緩存中。圖3描述的是按最大密度投影算法得出的圖像。
3.1.3 斷面切片算法
斷面切片算法就是在體素空間里,垂直于所規定的軸線方向作一個斷面,取該斷面的像素寫到緩存中。圖4描述的是按斷面切片算法得出的圖像。
3.2 累加求和算法和最大密度投影算法的對比
圖5最大密度投影算法求出的牙齒圖像 圖6 累加求和算法求出的牙齒圖像
通過圖5和圖6的對比可以看出:從內部結構清晰度的角度來講,累加求和算法求出的圖像比最大密度投影算法求出的圖像要更清晰;從輪廓角度來講,最大密度投影算法求出的圖像比累加求和算法求出的圖像輪廓更清晰。
采用累加求和算法可以更清楚地看到事物的內部信息,對采集信息提供了很大的幫助,在醫學方面提高了醫療診斷的準確性與科學性,有利于制定最優的治療方案及放射手術規劃。不僅僅在醫學方面,在其它領域中也具有重要意義。
4 總結
本文從體繪制的原理、方法到系統實現分別作了闡述,并介紹了用SDK方法實現體繪制的過程。如今,體繪制基本形成了一套比較完善的體系,但體繪制目前仍面臨一些問題。由于分割是一個不穩定因素, 仍沒有全自動的分割方法使分割問題得以徹底解決,因此人工干預不可避免。此外,體數據顯示速度也是一個亟待解決的問題,體數據顯示算法的研究也是一個重要方向。未來的體繪制將與虛擬現實技術相結合,創造逼真的虛擬環境, 讓操作者在更加逼真的虛擬環境中參與對體數據的操作和改良。
參考文獻:
[1] 管偉光.體視化技術及其應用[M].北京: 電子工業出版社,1998.
[2] 徐夏剛,張定華,洪歧.體視化方法綜述[J].計算機應用研究,2006,23(1):12-15.
[3] 秦緒佳.醫學圖象三維重建及可視化技術研究醫學圖象三維重建及可視化技術研究[D].大連理工大學,2001.
[5] 邢英杰,張艷峰,陸海濤,等.醫學圖像體視化技術的研究與開發[J].中國體視學與圖像分析,2003,8(3):187-192.
[6] 唐澤圣.三維數據場可視化[M].北京: 清華大學出版社,1999.
[7] 徐建華 .圖像處理與分析[M].北京: 北京科學出版社,1992.
[8] Malzbender T. Fourier Volume Rendering[J]. ACM Trans Graphics,1993.
[9] Song Hai-you, Pu Li-xin. Basic Algorithms for 3D Reconstruction in Medical Visualization.