專利名稱::基于各向異性體數(shù)據(jù)的錯切變形體繪制方法
技術(shù)領(lǐng)域:
:本發(fā)明屬于圖像處理
技術(shù)領(lǐng)域:
,涉及可視化三維圖像,尤其是針對各向異性體數(shù)據(jù)直接進(jìn)行錯切變形的體繪制方法。
背景技術(shù):
:醫(yī)學(xué)圖像在醫(yī)生診斷中的輔助作用越來越明顯,將二維切片圖像序列轉(zhuǎn)變?yōu)榫哂兄庇^立體效果的三維圖像,可以大大提高醫(yī)療診斷和治療規(guī)劃的準(zhǔn)確性和科學(xué)性。傳統(tǒng)的三維可視化方法分為面繪制和體繪制兩種,而體繪制又主要包括一、光線投射法在設(shè)定的觀察方向下,從屏幕的每一個像素點(diǎn)發(fā)出一條射線并穿過三維數(shù)據(jù)場,沿著射線做重采樣和圖像合成,最終形成該像素的圖像值。光線投射方法生成的圖像質(zhì)量高,但由于需要在三維空間中做大量的重采樣操作,繪制速度比較慢,難以滿足實(shí)時繪制的要求。二、錯切變形法將三維離散數(shù)據(jù)場的投影變換分解為三維空間的錯切變換和二維空間的變形操作,重采樣過程由三維降為二維,大大減少了計算量,使得三維數(shù)據(jù)場的體繪制可以在圖形工作站上以接近實(shí)時的速度實(shí)現(xiàn),是一個頗具應(yīng)用前景的體繪制方法。三、足跡表法逐層、逐行、逐個的計算每一個數(shù)據(jù)點(diǎn)對屏幕像素的貢獻(xiàn)并加以合成,形成最終的圖像。該方法的一個缺點(diǎn)也是計算量大,難以滿足實(shí)時繪制的要求。四、體元投射法將三維數(shù)據(jù)場看作多個大小和形狀相同的體元,計算每一個體元在屏幕上的投影。由于每一個體元在圖像屏幕上的平行投影在幾何上一致,利用此空間相關(guān)性可以減少計算量,適用于體元比較大的數(shù)據(jù)場。錯切變形法因其接近實(shí)時的繪制速度得到了廣泛的應(yīng)用。傳統(tǒng)的錯切變形法是基于各向同性體數(shù)據(jù)場,即二維切片圖像序列中相鄰兩切片圖像之間的距離等于二維切片圖像內(nèi)相鄰像素點(diǎn)之間的距離。對于二維切片圖像序列中相鄰兩切片圖像之間的距離大于二維切片圖像內(nèi)相鄰像素點(diǎn)之間的距離的體數(shù)據(jù)場,傳統(tǒng)的錯切變形法在進(jìn)行體繪制之前,需要通過切片間插值技術(shù)實(shí)現(xiàn)各向同性后再進(jìn)行繪制。而圖像插值是一個具有很大任意性的問題,不合適的插值算法直接影響插值后的圖像精度,并影響最后繪制的圖像質(zhì)量。隨著技術(shù)的不斷更新,新一代CT和MRI設(shè)備分辨率不斷提高,切片間距也不斷變小,甚至已接近像素間距。在此背景下,直接基于各向異性體數(shù)據(jù)進(jìn)行體繪制已經(jīng)成為一種技術(shù)需求。
發(fā)明內(nèi)容本發(fā)明提出一種基于各向異性體數(shù)據(jù)的錯切變形體繪制方法,具有圖形繪制運(yùn)算量小、速度快和圖形繪制質(zhì)量高的特點(diǎn)。該方法采用錯切變形法直接針對各項(xiàng)異性體數(shù)據(jù)進(jìn)行體繪制,無需對圖像序列作插值運(yùn)算;同時,該方法重采樣間距可以任意設(shè)定,在交互過程中可采取低采樣策略以提高繪制速度,交互完畢后采取高采樣策略以提高繪制圖像質(zhì)量,可同時滿足速度和質(zhì)量的要求。本發(fā)明的技術(shù)方案如下基于各向異性體數(shù)據(jù)的錯切變形體繪制方法,如圖1所示,包括以下步驟步驟1讀入圖像數(shù)據(jù)構(gòu)造三維體數(shù)據(jù)場。步驟1-1讀入二維圖像序列構(gòu)造三維體數(shù)據(jù)場;設(shè)所述二維圖像序列為尺寸為MXN的L張二維切片圖像。二維圖像(又叫二維切片)序列可以是包含圖像附加信息的DIC0M文件或BMP文件等,也可以是只包含用于繪制的圖像數(shù)據(jù)的二進(jìn)制文件。為方便后序處理,對于噪聲較大的二維圖像應(yīng)進(jìn)行預(yù)處理,如濾波等操作,減少圖像噪聲,然后再構(gòu)造三維體數(shù)據(jù)場。步驟1-2建立三維體數(shù)據(jù)場的世界坐標(biāo);對于MXNXL的體數(shù)據(jù)場,其中第k層、第i行、第j列的體數(shù)據(jù)的三維下標(biāo)為(i,j,k),1彡i彡M,1彡j彡N,1彡k彡L。設(shè)二維切片圖像內(nèi)橫向和縱向的像素間距為cx和cy,相鄰二維切片圖像的間距為cz,則該三維體數(shù)據(jù)場的世界坐標(biāo)Cw表示為步驟2:錯切變形分解。步驟2-1設(shè)置初始視矩陣MviCT(通常初始視矩陣Mview可設(shè)置為單位矩陣);步驟2-2根據(jù)鼠標(biāo)移動,設(shè)置視矩陣MviCT;將二維平面鼠標(biāo)的移動映射為三維球體上向量的轉(zhuǎn)動,根據(jù)三維球體上向量的轉(zhuǎn)動角度和方向,利用OpenGL的glRotatef()函數(shù)和glGetFloatvO函數(shù)得到旋轉(zhuǎn)矩陣,進(jìn)而得到視矩陣Mvi6W。步驟2-3尋找主軸,得到世界坐標(biāo)到標(biāo)準(zhǔn)世界坐標(biāo)的轉(zhuǎn)換矩陣P;計算視矩陣MviCT所對應(yīng)的觀察點(diǎn)在世界坐標(biāo)系中的坐標(biāo)值,其中絕對值最大的坐標(biāo)值對應(yīng)的軸即為主軸。由于錯切變形體繪制的重采樣是在二維平面中進(jìn)行,所以需要在三維數(shù)據(jù)場中確定重采樣平面,與重采樣平面垂直的軸稱為主軸。主軸定義為世界坐標(biāo)系中與觀察視線夾角最小的軸。根據(jù)三維空間幾何原理,夾角最小等價于夾角的余弦值最大,也就等價于視線上的觀察點(diǎn)在該坐標(biāo)軸上的投影值絕對值最大。所以只需要計算出觀察點(diǎn)在世界坐標(biāo)系中的坐標(biāo),絕對值最大的坐標(biāo)值對應(yīng)的軸即為主軸。標(biāo)準(zhǔn)世界坐標(biāo)就是以主軸為第三坐標(biāo)軸的右手坐標(biāo)系,通過計算得到的主軸,即可以得到世界坐標(biāo)到標(biāo)準(zhǔn)世界坐標(biāo)的轉(zhuǎn)換矩陣P。步驟2-4計算標(biāo)準(zhǔn)視矩陣M'view;標(biāo)準(zhǔn)視矩陣M'viOT的計算公式為M'v^zM-zF1。視矩陣Mvi為世界坐標(biāo)到觀察坐標(biāo)的轉(zhuǎn)換矩陣,標(biāo)準(zhǔn)視矩陣M'viOT為標(biāo)準(zhǔn)世界坐標(biāo)到觀察坐標(biāo)的轉(zhuǎn)換矩陣,則有關(guān)系M'v^zMy^P—1。標(biāo)準(zhǔn)視矩陣M'vi即用于錯切變形分解的矩陣。步驟2-5采用平行投影方式分解標(biāo)準(zhǔn)視矩陣M'view;將標(biāo)準(zhǔn)視矩陣分解為錯切矩陣Msh_和變形矩陣Mwp,分解公式為M‘view=MwarpMshear0其中錯切矩陣Msh_用于將標(biāo)準(zhǔn)世界坐標(biāo)空間轉(zhuǎn)換為錯切空間,錯切空間中觀察視線與主軸平行。錯切矩陣的形式如下其中SX,Sy為錯切因子,用于將視線方向錯切到與主軸平行的方向;ti'、tj'為平移因子,用于將錯切空間的原點(diǎn)平移至中間圖像的最左上角以方便計算。由于錯切因子表示的是單位錯切距離,而在本發(fā)明中的標(biāo)準(zhǔn)世界坐標(biāo)系中,切片間的距離并不是單位距離,所以平移因子ti'、tj'需要根據(jù)切片間的距離做比例運(yùn)算進(jìn)行校正。校正公式為“’=▽*ti’tj其中,ti、tj分別表示傳統(tǒng)錯切變形體繪制方法中的平移因子,▽表示主軸方向切片(即重采樣平面)間的距離。當(dāng)z軸為主軸時,▽二軸為主軸時,▽軸為主軸時,▽=c_y。步驟3:重采樣。采用平行投影方式,在錯切空間中,確定視線經(jīng)過二維切片圖像的重采樣點(diǎn);并利用線性加權(quán)方式計算每一個重采樣點(diǎn)的數(shù)據(jù)值。數(shù)據(jù)場各向異性時,二維切片圖像內(nèi)原始數(shù)據(jù)點(diǎn)成矩形陣列分布,每一個重采樣點(diǎn)的采樣權(quán)重不一樣。但是在一行內(nèi),垂直方向權(quán)重一致;在一列內(nèi),水平方向權(quán)重一致。步驟4:合成中間圖像。步驟4-1不透明度校正;對沿視線內(nèi)的每一個重采樣點(diǎn),根據(jù)其數(shù)據(jù)值和不透明度傳遞函數(shù)獲取每一個重采樣點(diǎn)的不透明度值a,并對每一個重采樣點(diǎn)的不透明度值a進(jìn)行校正,校正公式為=j一其中,a。_。ted為校正后的不透明度值,0為視線與主軸的夾角,Ac為重采樣平面間的距離,AS(I為不透明度值a所對應(yīng)的基準(zhǔn)距離。步驟4-2合成中間圖像;對沿視線內(nèi)的每一個重采樣點(diǎn)的顏色值c和校正后的不透明度值a。。m。tral,禾IJ用前向合成算子合成中間圖像的像素值,合成公式為其中,ain、cin分別表示累積的不透明度值和顏色值;a”Ci分別表示當(dāng)前重樣點(diǎn)的不透明度值和顏色值;a。ut、c。ut分別表示經(jīng)過當(dāng)前重樣點(diǎn)后的不透明度值和顏色值。當(dāng)完成整個數(shù)據(jù)場區(qū)域的合成之后,就形成了中間圖像。步驟5對中間圖像做變形操作,形成最終圖像。對形成的中間圖像,通過變形矩陣Mrap做變形操作,最后生成的就是最終圖像。步驟6將最終的三維效果圖像顯示到屏幕。將最終的圖像數(shù)據(jù)利用OpenGL的紋理貼圖功能繪制到屏幕上顯示。通過以上步驟,就能夠?qū)Ω飨虍愋泽w數(shù)據(jù)直接進(jìn)行錯切變形體繪制,在屏幕上顯示三維立體的最終圖像,并可以通過鼠標(biāo)交互旋轉(zhuǎn),從不同角度觀看圖像效果。需要說明的是對于步驟3的重采樣過程,重采樣平面內(nèi)的重采樣點(diǎn)距離可以任意設(shè)定。在實(shí)際繪制中,當(dāng)鼠標(biāo)交互時,由于只是需要做觀察方向的定位,所以采用較低的重采樣率(對應(yīng)較高的重采樣距離),以降低計算量,使圖像可以以實(shí)時速度做旋轉(zhuǎn)操作;在繪制最終圖像時,采用較高的重采樣率(對應(yīng)較低的重采樣距離),以提高圖像質(zhì)量。本發(fā)明的創(chuàng)新之處在于1、本發(fā)明可以直接基于各向異性體數(shù)據(jù)進(jìn)行繪制,避免了各向同性處理的插值過程,不但降低了圖像的預(yù)處理時間,也提高了繪制圖像精度;2、采用可變重采樣率的方式,使繪制速度和繪制精度同時得到滿足。圖1為錯切變形體繪制算法流程圖;圖2為錯切變形體繪制算法基本原理圖;圖3為本發(fā)明中重采樣示意圖;圖4為本發(fā)明中不透明度校正示意圖。具體實(shí)施例方式本發(fā)明采樣以上技術(shù)方案,利用VC開發(fā)環(huán)境和OpenGL圖形庫,實(shí)現(xiàn)了整個算法。數(shù)據(jù)源采用了DIC0M格式的MRI圖像以及二進(jìn)制的單純頭骨數(shù)據(jù)做了測試,均繪制出了效果比較理想的三維圖像,在鼠標(biāo)交互時也能達(dá)到實(shí)時繪制速度。權(quán)利要求基于各向異性體數(shù)據(jù)的錯切變形體繪制方法,包括以下步驟步驟1讀入圖像數(shù)據(jù)構(gòu)造三維體數(shù)據(jù)場;步驟1-1讀入二維圖像序列構(gòu)造三維體數(shù)據(jù)場;設(shè)所述二維圖像序列為尺寸為M×N的L張二維切片圖像;步驟1-2建立三維體數(shù)據(jù)場的世界坐標(biāo);對于M×N×L的體數(shù)據(jù)場,其中第k層、第i行、第j列的體數(shù)據(jù)的三維下標(biāo)為(i,j,k),1≤i≤M,1≤j≤N,1≤k≤L;設(shè)二維切片圖像內(nèi)橫向和縱向的像素間距為cx和cy,相鄰二維切片圖像的間距為cz,則該三維體數(shù)據(jù)場的世界坐標(biāo)Cw表示為<mrow><msub><mi>C</mi><mi>w</mi></msub><mo>=</mo><mfencedopen='['close=']'><mtable><mtr><mtd><mi>cx</mi></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mi>cy</mi></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mi>cz</mi></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>·</mo><mfencedopen='['close=']'><mtable><mtr><mtd><mi>i</mi></mtd></mtr><mtr><mtd><mi>j</mi></mtd></mtr><mtr><mtd><mi>k</mi></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced></mrow>步驟2錯切變形分解;步驟2-1設(shè)置初始視矩陣Mview;步驟2-2根據(jù)鼠標(biāo)移動,設(shè)置視矩陣Mview;將二維平面鼠標(biāo)的移動映射為三維球體上向量的轉(zhuǎn)動,根據(jù)三維球體上向量的轉(zhuǎn)動角度和方向,利用OpenGL的glRotatef()函數(shù)和glGetFloatv()函數(shù)得到旋轉(zhuǎn)矩陣,進(jìn)而得到視矩陣Mview;步驟2-3尋找主軸,得到世界坐標(biāo)到標(biāo)準(zhǔn)世界坐標(biāo)的轉(zhuǎn)換矩陣P;計算視矩陣Mview所對應(yīng)的觀察點(diǎn)在世界坐標(biāo)系中的坐標(biāo)值,其中絕對值最大的坐標(biāo)值對應(yīng)的軸即為主軸;步驟2-4計算標(biāo)準(zhǔn)視矩陣M′view;標(biāo)準(zhǔn)視矩陣M′view的計算公式為M′view=Mview·P-1;步驟2-5采用平行投影方式分解標(biāo)準(zhǔn)視矩陣M′view;將標(biāo)準(zhǔn)視矩陣分解為錯切矩陣Mshear和變形矩陣Mwarp,分解公式為M′view=Mwarp·Mshear;其中錯切矩陣Mshear用于將標(biāo)準(zhǔn)世界坐標(biāo)空間轉(zhuǎn)換為錯切空間,形式如下<mrow><msub><mi>M</mi><mi>shear</mi></msub><mo>=</mo><mfencedopen='['close=']'><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mi>sx</mi></mtd><mtd><msup><mi>ti</mi><mo>′</mo></msup></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mi>sy</mi></mtd><mtd><msup><mi>tj</mi><mo>′</mo></msup></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced></mrow>其中sx,sy為錯切因子,用于將視線方向錯切到與主軸平行的方向;ti′、tj′為平移因子,用于將錯切空間的原點(diǎn)平移至中間圖像的最左上角以方便計算,且平移因子ti′、tj′需要根據(jù)切片間的距離做比例運(yùn)算進(jìn)行校正,校正公式為<mrow><msup><mi>ti</mi><mo>′</mo></msup><mo>=</mo><mo>▿</mo><mo>*</mo><mi>ti</mi><mo>,</mo></mrow><mrow><msup><mi>tj</mi><mo>′</mo></msup><mo>=</mo><mo>▿</mo><mo>*</mo><mi>tj</mi></mrow>其中,ti、tj分別表示傳統(tǒng)錯切變形體繪制方法中的平移因子,表示主軸方向切片,即重采樣平面間的距離;當(dāng)Z軸為主軸時,X軸為主軸時,Y軸為主軸時,步驟3重采樣;采用平行投影方式,在錯切空間中,確定視線經(jīng)過二維切片圖像的重采樣點(diǎn);并利用線性加權(quán)方式計算每一個重采樣點(diǎn)的數(shù)據(jù)值;數(shù)據(jù)場各向異性時,二維切片圖像內(nèi)原始數(shù)據(jù)點(diǎn)成矩形陣列分布,每一個重采樣點(diǎn)的采樣權(quán)重不一樣;但是在一行內(nèi),垂直方向權(quán)重一致;在一列內(nèi),水平方向權(quán)重一致;步驟4合成中間圖像;步驟4-1不透明度校正;對沿視線內(nèi)的每一個重采樣點(diǎn),根據(jù)其數(shù)據(jù)值和不透明度傳遞函數(shù)獲取每一個重采樣點(diǎn)的不透明度值α,并對每一個重采樣點(diǎn)的不透明度值α進(jìn)行校正,校正公式為<mrow><msub><mi>α</mi><mi>corrected</mi></msub><mtext>=1-</mtext><msup><mrow><mo>[</mo><mn>1</mn><mo>-</mo><mi>α</mi><mo>]</mo></mrow><mrow><mfrac><mn>1</mn><mrow><mi>cos</mi><mi>θ</mi></mrow></mfrac><mo>*</mo><mfrac><mi>Δc</mi><mrow><mi>Δs</mi><mn>0</mn></mrow></mfrac></mrow></msup></mrow>其中,αcorrected為校正后的不透明度值,θ為視線與主軸的夾角,Δc為重采樣平面間的距離,Δs0為不透明度值α所對應(yīng)的基準(zhǔn)距離;步驟4-2合成中間圖像;對沿視線內(nèi)的每一個重采樣點(diǎn)的顏色值c和校正后的不透明度值αcorrected,利用前向合成算子合成中間圖像的像素值,合成公式為<mfencedopen='{'close=''><mtable><mtr><mtd><msub><mi>α</mi><mi>out</mi></msub><mo>=</mo><msub><mi>α</mi><mi>in</mi></msub><mo>+</mo><mrow><mo>(</mo><mn>1</mn><mo>-</mo><msub><mi>α</mi><mi>in</mi></msub><mo>)</mo></mrow><msub><mi>α</mi><mi>i</mi></msub></mtd></mtr><mtr><mtd><msub><mi>c</mi><mi>out</mi></msub><mo>=</mo><msub><mi>c</mi><mi>in</mi></msub><mo>+</mo><mrow><mo>(</mo><mn>1</mn><mo>-</mo><msub><mi>α</mi><mi>in</mi></msub><mo>)</mo></mrow><msub><mi>c</mi><mi>i</mi></msub></mtd></mtr></mtable></mfenced>其中,αin、cin分別表示累積的不透明度值和顏色值;αi、ci分別表示當(dāng)前重樣點(diǎn)的不透明度值和顏色值;αout、cout分別表示經(jīng)過當(dāng)前重樣點(diǎn)后的不透明度值和顏色值;當(dāng)完成整個數(shù)據(jù)場區(qū)域的合成之后,就形成了中間圖像;步驟5對中間圖像做變形操作,形成最終圖像;對形成的中間圖像,通過變形矩陣Mwarp做變形操作,最后生成的就是最終圖像;步驟6將最終的三維效果圖像顯示到屏幕;將最終的圖像數(shù)據(jù)利用OpenGL的紋理貼圖功能繪制到屏幕上顯示;通過以上步驟,就能夠?qū)Ω飨虍愋泽w數(shù)據(jù)直接進(jìn)行錯切變形體繪制,在屏幕上顯示三維立體的最終圖像,并可以通過鼠標(biāo)交互旋轉(zhuǎn),從不同角度觀看圖像效果。FSA00000137031100024.tif,FSA00000137031100025.tif,FSA00000137031100026.tif,FSA00000137031100027.tif,FSA00000137031100028.tif2.根據(jù)權(quán)利要求1所述的基于各向異性體數(shù)據(jù)的錯切變形體繪制方法,其特征在于,所述步驟3的重采樣過程,重采樣平面內(nèi)的重采樣點(diǎn)距離可以任意設(shè)定;在實(shí)際繪制中,當(dāng)鼠標(biāo)交互時采用較低的重采樣率;在繪制最終圖像時,采用較高的重采樣率。全文摘要基于各向異性體數(shù)據(jù)的錯切變形體繪制方法,屬于圖像處理
技術(shù)領(lǐng)域:
。包括構(gòu)造三維體數(shù)據(jù)場、錯切變形分解、重采樣、合成中間圖像、變形得到最終圖像等步驟;本發(fā)明主要對原始錯切變形算法的坐標(biāo)變換、重采樣、不透明度校正等步驟做了改進(jìn),可以在圖像數(shù)據(jù)構(gòu)造成邏輯的三維體數(shù)據(jù)場之后,不需要通過斷層插值操作使其各向同性,而是直接基于各向異性數(shù)據(jù)場做體繪制操作。不僅減少了預(yù)處理時間,也提高了用于繪制的圖像數(shù)據(jù)精度。另外在實(shí)施過程中,采用了可變重采樣的方式,鼠標(biāo)交互時降低采樣率提高繪制速度,繪制最終圖像時提高采樣率增強(qiáng)圖像質(zhì)量,同時滿足了繪制速度和圖像精度的要求。文檔編號G06T15/00GK101853518SQ20101018588公開日2010年10月6日申請日期2010年5月28日優(yōu)先權(quán)日2010年5月28日發(fā)明者李郭,解梅申請人:電子科技大學(xué)