陶龍風,蔣先剛
(華東交通大學基礎科學學院;江西南昌330013)
在體繪制中,傳遞函數是定出體數據與光學特征對應關系的關鍵步驟,傳遞函數的設定對三維重構圖像的質量具有重要的作用。傳遞函數是原始三維數據場與賦予光學屬性的三維數據場之間的調節因素和關系表達,也是控制三維數據在不同濃度區間的可見性的一個調節因素。傳遞函數設定的適度對三維成像質量有著直接的影響。傳遞函數的圖形表達通常是關于數據場和光學權重因子的可編輯的二維圖形。本文針對傳遞函數可編輯圖的y坐標,提出了使用對數尺度的傳遞函數達到敏感區域具有更大的空間可操作性。
在體繪制中,傳遞函數將三維數據場的數據值轉換為光學成像參數,建立了采樣點與光學特征之間的映射關系[1-2],它決定了體繪制的成像質量。傳遞函數在數學上可以定義為三維數據場的數據屬性到光學屬性的映射

式中,Dn(n=1,2,…n)是傳遞函數的定義域,表示三維數據場的數據屬性,它可以是采樣點的數據值,如CT圖像的灰度值,也可以是局部采樣點數值計算的結果,如梯度幅值、二階方向導數等;Om(m=1,2,…m)是傳遞函數的值域,表示體素進行可視化的光學屬性,如顏色(RGB)、不透明度(alpha)、陰影參數(Phong)等。τ表示數據屬性轉換為光學屬性的映射規則。按著映射規則通過灰度值和不透明度值而獲得體素的顏色[3],一條投影光線中的當前點透明度值具有以下關系式

其中,αnew表示按著映射規則最新遇到的體素的不透明度值,式中左邊αacc根據傳遞函數的映射規則得到的新的不透明度值。
由式(1)可知,傳遞函數的定義域是數據屬性范圍。數據屬性可以分為局部數據屬性和全局數據屬性。局部數據屬性可以是數據場中每一個采樣點所具有的屬性,也可以是采樣點與鄰居采樣點共同計算得到的數據值。全局數據屬性是通過局部數據屬性計算得來的。如空間某點(X、Y、Z)的灰度值就是一種局部數據屬性,而灰度值統計得到的直方圖函數則顯然是一種全局的數據屬性,這些屬性通過傳遞函數的轉換表現為光學成像參數,即傳遞函數的設定能適度地多層次地改變三維重構圖像質量。
標量值在數學中指的是只包含單純的數據屬性而不包含任何方向特性的數值,如一個點的坐標值等。標量值是最簡單、最常用的數據屬性,它是三維空間中多種不同物質的測量結果。每個采樣點標量值的大小取決于數據的來源,它具有一定的含意而用來區分不同的器官組織物質。圖1為一人體頭部CT圖的灰度直方分布圖。對應于骨骼、肌肉和腦髓等不同密度的物質有不同的灰度值,可以根據灰度值標量關系來定義顏色和不透明度傳遞函數,將不同的灰度值或相同灰度范圍的物質賦予同一種顏色或不透明度值。

圖1 人體頭部圖的灰度直方圖
梯度幅值是另一種常用的數據屬性,它是一種基于邊界特征的屬性,它反映著各類型數據在邊界的交替程度和分布。在物質的邊界處灰度值通常會發生突變,也即曲面場中所定義的局部極大值或極小值。標量值改變的劇烈程度可以用梯度幅值來度量。在三維連續空間中,梯度幅值的計算公式為[4-5]

式中,f表示三維數據曲線,‖▽f‖表示“向量的模”。三維數據場是由離散的采樣點組成的,因此采樣點的梯度幅值是通過采樣點與鄰近的采樣點的差分計算獲得的。圖2所示表達CT圖片中的梯度分布直方圖,在骨頭內部區域由于灰度值基本是相同的,所以它們的梯度值基本是相同的,而骨頭與肌肉的交界處是骨頭與肌肉交錯曲面體的區域,這時灰度值就有較大的改變。

圖2 人體CT圖像的梯度分布直方圖
在三維數據場中,通常假設同一種組織具有相似的灰度值,不同的組織具有不同的灰度值,而不同組織之間的交融邊界的確定對清晰的多層次的三維重構具有重要的作用。不同的組織之間的灰度界越區可以設成趨于全透明而達到多層次的器官組織顯示效果,通過K-均值聚類算法對圖像灰度進行分類獲得各組織分界的關鍵點后,如果設定數據類傳遞函數在邊界點區域的不透明度值y調節區域為較小或梯度類傳遞函數的不透明度值y調節區域較小時,各層組織仿佛用透明體隔開,但這些關鍵點區域的細調y范圍常在歸一化的0.0~0.3之間,需借助對數曲線的區域等比性而將敏感區域進行加大。
依光學模型的成像原理可知,一條射線的各體素在投影面的最終成像是這條射線上許多體素的透明度和灰度值的綜合累計結果,這樣,敏感區域的各濃度和透明度的取值必然都比較小,要想在比較大的幾何區域調節這些精細的參數,需將這個區域進行仿射幾何變換[6-7],而幾何空間的對數變換滿足數值低端放大而高端壓縮的縱軸向幾何分布要求。
本文令d為三維數據體,ρd表示光密度(透明度值),dα表示密度。將均勻傳遞函數得到的值調整到歸一化后區間[0,1]的對數尺度傳遞函數的值域。我們可以得到線性傳遞函數的不透明度值α與對數尺度傳遞函數的α′之間的關系


這里α′是通過線性傳遞函數α得到傳遞函數的值,且α=max(ln d,1),要使對數尺度上的 α′返回到實際參加運算的α上,又可以根據公式(5)反變換得到

同理,α是通過對數傳遞函數α′算出傳遞函數的值。公式(6)是為了讓不透明度值的取值范圍控制在區間[0,1]內。在具體的程序設計實現過程中,首先建立一個坐標平面,x軸的坐標從0到255的范圍,y軸的坐標從0到1的范圍,然后當鼠標在坐標平面移動時,通過坐標轉換的運算而獲得傳遞函數在各個區間的值。當傳遞函數曲線的關鍵點被選取時,其平面上x值在兩個坐標系中一致,僅僅對y軸的坐標做了一個變換。即


圖3 均勻坐標下灰度傳遞函數及重構圖
同理,對梯度傳遞函數坐標系進行同樣的轉換,這時 x軸的取值為歸一化后的圖片的總體分布灰度值,即首先分別求出每個點的梯度值,然后求出這些梯度值的歸一化縱向值,不同坐標系下對應梯度下的透明度值如圖5、圖6所示。
從圖3到圖6中不難看出,在兩種傳遞函數坐標體系下可以獲得基本相同的三維繪制效果圖,但是均勻坐標下傳遞函數(圖3和圖5)中橫向與縱向的單位尺度變化是等同的,而根據光學模型的成像原理可知,關鍵區域的y值變化的合理調節通常在0.02~0.10這樣非常小的范圍內,這樣不利于在很小的范圍內來很大幾何程度地改變y的值。相反,在對數坐標下傳遞函數表示的圖(圖4和圖6)中,由于最敏感區域(0.0~0.3)上占有比較寬的范圍,這樣能在x很小的范圍內來改變y的值,在較大幾何空間里增大y的靈敏度和可操作性,以獲得我們想要的精細的三維重構效果。

圖4 對數坐標下灰度傳遞函數及重構圖

圖5 均勻坐標下梯度傳遞函數的設定及重構圖

圖6 對數坐標下梯度傳遞函數的設定及重構圖
體繪制中的傳遞函數在清晰表達多層次三維數據中起著重要的作用,它可以清楚地顯示感興趣區域和它們的層次關系,揭示病變組織或細節部分。根據均值聚類方法可以定義出各組織分類的分界點,而設定這些分界點的附近點的透明度值為較大可調節空間時就將各類組織方便而清晰地分開來,而細節部分的顯示最終可通過對數傳遞函數關鍵點的調節來達到,三維重構效果圖的質量有很大幅度的提高。在縱軸的對數坐標映射關系可設計多層次的,即在縱軸[0,1]區間設計2-3個對數映射關系以達到最佳傳遞函數的調節。如果在x方向關鍵點區域再進行彩色拉伸,同時配合對數仿射來調節傳遞函數的不透明度值,將會更加提高三維重構圖像質量。
[1]齊蕊.體繪制傳遞函數設定方法的研究與應用[D].長沙:湖南大學出版社,2009:26-34.
[2]VLADIMIR P,RAFAEL W,DANIEL H.Fast detection of meaningful isosurfacesfor volume data visualization[C]//In12th IEEEVisualization 2001,2001:223-230.
[3]蔣先剛.三維數據場重構與顯示工程軟件設計[M].北京:中國水利水電出版社,2009:191-193.
[4]蔣純志,張建華,曹菊英.等截面縱橫曲梁的分布傳遞函數法[J].科學技術與工程,2007(7):3223-3224
[5]SIMEON P,TORSTEN M.Transfer Functions on a logarithmic scale for volume Rendering[C]//In Proceedings of the Graphics Interface,2004,ACM press 2004:57-63.
[6]肖永飛,付宜利,王樹國.一種可交互的體繪制光學傳遞函數模型[J].光學學報,2008(8):1502-1509.
[7]曾向陽.頭相關傳遞函數的個人方法[J].北京電視電聲雜志社,2007,31(8):41-47.