亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于VTK的體繪制系統(tǒng)實現(xiàn)

        2008-04-12 00:00:00李昌華
        現(xiàn)代電子技術(shù) 2008年12期

        摘 要:可視化是在信息化進(jìn)程中發(fā)展起來的一個全新領(lǐng)域,VT是一個功能強(qiáng)大的可視化工具包。體繪制技術(shù)作為可視化最活躍的領(lǐng)域之一,其算法不斷得到改進(jìn)和完善。簡要介紹VT的功能和應(yīng)用,描述幾種不同的繪制算法,并在此基礎(chǔ)上用TCL語言實現(xiàn)一個簡單的基于VT的體繪制系統(tǒng),給出具體設(shè)計實現(xiàn)過程。該系統(tǒng)實現(xiàn)體繪制技術(shù)中4種不同的算法,為VT工具包更好地應(yīng)用于可視化領(lǐng)域提供了實踐基礎(chǔ)。

        關(guān)鍵詞:可視化;VT;體繪制;三維重建

        The Implement of Volume Rendering System Based on VT

        LI Jing,LI Changhua

        (School of Information Control Engineering,Xi′an University of Architecture and Technology,Xi′an,710055,China

        Abstract:Visualization is an emerging filed that developed in information progress,VT is a visualization toolkits with strong functions.Volume rendering technology,as an active filed,its algorithm is improving and becomes perfect.In this paper,it introduces the function and application of VT,describes several different rendering algorisms.It realizes a simple volume rendering system which uses TCL,and provides complete process.This system accomplishes four different algorisms about volume rendering.It provides the practical basis that VT toolkit applied in visualization.

        eywords:visualization;VT;volume rendering;3D reconstruction

        1 引 言

        隨著社會信息化的發(fā)展和網(wǎng)絡(luò)應(yīng)用的日益廣泛,人們所獲得的信息源越來越龐大,對于大型數(shù)據(jù)甚至海量數(shù)據(jù)的處理需求日益迫切??茖W(xué)計算可視化(Visualization in Scientific Computing就是在這種背景下提出并發(fā)展起來的一個全新的領(lǐng)域??茖W(xué)計算可視化的本質(zhì)是運(yùn)用計算機(jī)圖形學(xué)和圖像處理技術(shù),將科學(xué)計算過程中產(chǎn)生的數(shù)據(jù)及計算結(jié)果轉(zhuǎn)換為圖像,在屏幕上顯示出來并進(jìn)行交互處理,其核心是三維數(shù)據(jù)場的可視化[1]。體繪制是可視化最活躍的研究子領(lǐng)域之一 ,它不借助中間圖元,而是直接將三維空間的離散數(shù)據(jù)轉(zhuǎn)換為二維圖像。十多年來,在廣大科研人員的努力下,已經(jīng)發(fā)展了一些體繪制技術(shù)來分析、理解和繪制數(shù)據(jù)場中包含的物體,并且已在醫(yī)學(xué)、天文、地理、氣象、航天等計算機(jī)模擬中得到廣泛應(yīng)用。本文主要簡單介紹可視化工具包VT的功能及應(yīng)用,并具體實現(xiàn)一個基于VT的利用TCLT語言開發(fā)的體繪制系統(tǒng)。

        2 可視化工具包VTK

        VT(The Visualization Toolkits是一個基于面向?qū)ο蠓椒ㄔO(shè)計的、功能強(qiáng)大的可視化和圖形圖像處理的工具箱。它是在三維函數(shù)庫OpenGL 的基礎(chǔ)上發(fā)展起來的,VT構(gòu)造在C++語言之上,它不僅基于C++類庫,還支持腳本語言TCLTk,Java,Python,支持Windows,Unix等操作系統(tǒng)。VT能夠支持和處理多種表示格式的數(shù)據(jù),如有規(guī)則的或無規(guī)則的點(diǎn)陣 (pointsets,圖像 (image,體元數(shù)據(jù) (volume 等[2]。此外VT還將在可視化開發(fā)過程中會經(jīng)常遇到的細(xì)節(jié)屏蔽起來,并將一些常用的算法進(jìn)行封裝,同時,用戶還可以在VT基類的基礎(chǔ)上開發(fā)自己的類庫。自從1993年問世以來,VT憑借其開放靈活的特性受到越來越多人的青睞,不斷地被改進(jìn)和完善。

        2.1 VTK的繪圖模式

        VT的繪圖模式可用于2D,3D等一般圖形的處理,它主要有9種基本對象:

        角色(Actor:VTActor代表渲染場景中的繪制對象實體,通過調(diào)節(jié)參數(shù)可以設(shè)置角色的位置、方向、渲染特性、紋理影射等屬性。

        燈光(Light:VTLlight類提供了燈光的位置、燈光的狀態(tài)(開關(guān)、亮度、顏色等。同時也可以設(shè)置光源的照射角度以及衰減程度。

        照相機(jī)(Camera:VTCamera類用來設(shè)置視點(diǎn)的位置以及焦點(diǎn)位置及其他屬性。

        屬性(Property:Property主要用來說明幾何物體的一些特征。比如光照特性、著色模式、物體灰度等。

        映射(Mapper:Mapper指定數(shù)據(jù)與基本圖元之間的關(guān)系,VTMapper的派生類通過一個向上觀察板(LookupTable來映射數(shù)據(jù),同時控制與圖形庫相連的圖元的生成。

        變換(Trasform:VTTrasform是一個放置4×4變換矩陣的堆棧,可以對這個矩陣進(jìn)行平移、縮放、旋轉(zhuǎn)等操作。

        渲染窗口(RenderWindow:其基類為VTRenderWindow,用于在顯示設(shè)備中生成一個窗口,渲染窗口是用戶圖形界面,可以設(shè)置渲染窗口的大小,也可以產(chǎn)生立體顯示效果,支持雙緩存。

        渲染器(Render:基類為VTRenderer,主要用于控制目標(biāo)的渲染過程,管理光源、照相機(jī)位置等屬性。

        窗口交互(Render Window Interactor:在VT中,VtkRenderWindowlnteractor是場景交互方法的一種,它作為一種簡單的工具可以用來操作相機(jī)、選取對象、調(diào)用用戶定義的函數(shù)等。

        2.2 VT的可視化模式

        可視化模式主要用于可視化過程中的數(shù)據(jù)模式如CT,MRI的數(shù)據(jù)輸入及處理。VT使用數(shù)據(jù)流的方式將源數(shù)據(jù)轉(zhuǎn)換為圖像數(shù)據(jù)。這里包含數(shù)據(jù)對象和處理對象2類基本對象。數(shù)據(jù)對象用來表示各種類型的數(shù)據(jù),它由幾何結(jié)構(gòu)、拓?fù)浣Y(jié)構(gòu)以及屬性數(shù)據(jù)(如向量、標(biāo)量組成。處理對象一般分為源處理對象(Source、過濾器(Filter、映射器(Mapper三類,它用來操作數(shù)據(jù)對象并生成新的數(shù)據(jù)對象。處理對象表示系統(tǒng)中對數(shù)據(jù)進(jìn)行處理的算法。將數(shù)據(jù)對象和處理對象連接在一起就形成VT中的可視化流水線[3],如圖1所示。

        3 體繪制系統(tǒng)介紹與實現(xiàn)

        這里使用TCLT語言,利用VT函數(shù)庫實現(xiàn)一個簡單的體繪制系統(tǒng)。通過這個系統(tǒng)主要介紹如何通過調(diào)用VT函數(shù)庫實現(xiàn)圖像重建,并且通過一個切片數(shù)據(jù)bolt.slc向大家展現(xiàn)不同的繪制方法所表現(xiàn)出的不同的效果。它可大體分為前臺交互及后臺計算2部分。其中前臺交互是通過Tk實現(xiàn)的,后臺的計算則以TCL為開發(fā)平臺,通過對VT中封裝的對象及方法的調(diào)用來實現(xiàn)。在整個系統(tǒng)中,對三維數(shù)據(jù)的繪制使用4種不同的方法:最大密度投影法;合成法;等值面法;二維紋理映射法。

        3.1 TCLT

        TCI 代表“ Tool Command Language” ,是一種簡單的腳本語言,它幾乎在所有的平臺上都可以解釋運(yùn)行,功能強(qiáng)大。TCL主要用于發(fā)布命令給一些交互程序如文本編輯器、可視化工具軟件、仿真工具等。它語法很簡單,并有很強(qiáng)的擴(kuò)充性。T是對 TCL的圖形工具箱擴(kuò)展。T發(fā)行版與 TCL 的發(fā)行版是在一起的[4]。在創(chuàng)建 T小部件時,幾乎很少使用命令,一半以上都是按鈕或文本小部件的變體。選用TCLTk作為開發(fā)語言,是因為它靈活的特性和簡單的語法可以很方便地與VT進(jìn)行融合。

        3.2 常用繪制算法介紹

        (1 MC算法:Marching Cubes 算法是一種應(yīng)用很廣泛的由體密度數(shù)據(jù)重構(gòu)三維等值面的方法。MC算法也被稱為“等值面提取”(Isosurface Extraction,其本質(zhì)是將一系列兩維的切片數(shù)據(jù)看作一個三維的數(shù)據(jù)場,從中將具有某種域值的物質(zhì)抽取出來,以某種拓?fù)湫问竭B接成三角面片。MC算法流程如下:每次讀出2張切片,形成1層,2張切片上下對應(yīng)的8個點(diǎn)構(gòu)成1個立方體,然后按從左到右,從前到后的順序處理1層中的立方體,抽取每個立方體中的等值面,然后從下到上直至處理到n-1層,所以稱為移動立方體算法。MC算法屬于面繪制,也可以稱為間接體繪制。

        (2 光線投射算法:光線投射算法(Ray Casting是直接體繪制中最常用的算法,它的基本思想是:從屏幕上的每一像素點(diǎn)發(fā)出1條視線,這條視線穿過三維場的體元矩陣,沿這條視線等距設(shè)置采樣點(diǎn),將距離采樣點(diǎn)最近的8個數(shù)據(jù)點(diǎn)所組成體素的顏色值及不透明度進(jìn)行三次線形插值,求出該采樣點(diǎn)的不透明度及顏色值。然后可以按從前到后或從后到前的合成公式對所有采樣點(diǎn)的顏色和不透明度進(jìn)行合成。當(dāng)對所有像素點(diǎn)都進(jìn)行以上過程后,就會得到此數(shù)據(jù)場的體繪制結(jié)果圖像。

        3.3 四種繪制方法分析與實現(xiàn)

        (1 最大密度投影法:假設(shè)每一個體元都是能夠發(fā)光的立方體,沿著光線方向,選擇每條與體元相交的直線上的全部點(diǎn)中的最大的密度值作為圖像投影平面密度值,這就是最大密度投影(MIP算法。在MIP描繪過程中,主要實現(xiàn)光線路徑上的點(diǎn)中最大密度點(diǎn)投影的功能。這一過程在VT的定義中屬于光線投射算法的三維數(shù)據(jù)體繪制。在VT實現(xiàn)過程中首先通過調(diào)用vtkSLCReader函數(shù)讀取切片數(shù)據(jù)并設(shè)置讀取路徑,這里與Slice方法不同的是,是通過設(shè)計轉(zhuǎn)換函數(shù)實現(xiàn)顏色和不透明度設(shè)置。在這里通過調(diào)用vtkPiecewiseFunction函數(shù)和vtkcolorTransferFunction函數(shù)將體數(shù)據(jù)值轉(zhuǎn)換成不透明度和顏色等光學(xué)屬性,并使用vtkVolumeProperty函數(shù)對其顏色、不透明度等屬性進(jìn)行加載,接著調(diào)用vtkVolumeRayCastMIPFunction函數(shù)加載繪制方法,然后使用AddVolume將產(chǎn)生的mip_volume及通過類vtkCubeSource定義的Actor:outline_mapper加入到ren2中。最后調(diào)用vtkRenderer進(jìn)行投影。在MIP中有2種方法可以用來改變最大值操作的行為:SetMaximizeMethodToScalarValue( 方法或SetMaximizeMethodToOpacity(方法。如果采用第一種方法,則沿著射線的每一個采樣點(diǎn)的標(biāo)量值均被考慮,其中具有最大標(biāo)量值的采樣點(diǎn)被選擇,然后這個標(biāo)量值被傳遞給顏色和不透明度轉(zhuǎn)換函數(shù)用來來生成最后的射線值;如果調(diào)用第二種方法,則沿著射線的每一個采樣點(diǎn)的不透明度都將被計算,其中具有最大不透明度的采樣點(diǎn)將被選擇。在這里采用第一種方法,即通過調(diào)用vtkVolumeRayCastMIPFunction類中的SetMaximizeMethodToScalarValue方法來實現(xiàn)最大密度投影設(shè)置。效果圖如圖3所示。

        (2 合成算法:合成算法(Composite是對每條光線上的每個像素點(diǎn)的密度進(jìn)行加權(quán)求和,將結(jié)果作為圖像投影像素的密度值。在Composite描繪過程中,主要實現(xiàn)光線路徑上所有點(diǎn)的密度加權(quán)和的投影功能。這一過程在VT的定義中同屬基于光線投射算法的三維數(shù)據(jù)體繪制。它的實現(xiàn)過程基本類似于MIP,在這里借助于類vtkVolumeRayCastCompositeFunction對取得“光線路徑上所有點(diǎn)的密度之和的投影”這一功能做了定義。在vtkVolumeRayCastCompositeFunction 中,有2種方法可以用來改變插值和分類的順序,分別是:SetCompositeMethodToInterPolateFirst(插值優(yōu)先方法和SetCompositeMethodToClassifyFirst(分類優(yōu)先方法。這種設(shè)置僅在采用三線性插值的時候才會產(chǎn)生影響。在第一種情況中,先執(zhí)行插值,以此決定采樣點(diǎn)的標(biāo)量值,然后在將這個值用于分類;在第二種情況中,將先執(zhí)行分類,之后在執(zhí)行插值。插值優(yōu)先通常能產(chǎn)生較好的效果,因此在這里采用默認(rèn)的第一種插值優(yōu)先法。效果圖如圖3所示。

        (3 等值面法:等值面法(Isosurface是利用表面的信息對圖像進(jìn)行繪制。雖然該方法同屬基于光線投射算法的三維數(shù)據(jù)體繪制,但是其本質(zhì)更接近于面繪制。在實現(xiàn)過程中借助ShadeOn方法及SetInterpolationTypeToLinear方法對陰影功能和插值功能進(jìn)行定義。并使用類vtkVolumeRayCastIsosurfaceFunction中的方法SetIsoValue設(shè)置等值面的初始值。在Isosurface描繪過程中,主要實現(xiàn)光線路徑上所有密度相同的點(diǎn)組成的等值面的投影功能。效果圖如圖4所示。

        (4 二維紋理映射法:二維紋理映射二維紋理映射的體繪制是將體數(shù)據(jù)沿正交方向生成序列二維圖像,產(chǎn)生二維紋理切片,然后將這些二維紋理切片依次堆疊完成體繪制過程。紋理映射算法同屬于體繪制算法,因此同樣需要設(shè)置不透明度、顏色、梯度3個傳遞函數(shù)來控制三維體的外觀。與光線投射算法不同的是,它調(diào)用的映射類型為二維紋理映射。在實現(xiàn)過程中通過vtkPiecewiseFunction函數(shù)將體數(shù)據(jù)值轉(zhuǎn)換成不透明度和顏色等光學(xué)屬性, 使用vtkVolumeProperty函數(shù)對其顏色、不透明度、陰影、插值等功能進(jìn)行加載,調(diào)用vtkVolumeTextureMapper2D函數(shù)定義二維紋理映射,使用setCamera設(shè)置視點(diǎn)位置,并使用[ren1 GetActiveCamera] oom來設(shè)置放大系數(shù),最后調(diào)用Render進(jìn)行繪制。效果圖如圖5所示。

        3.4 結(jié)果討論

        試驗結(jié)果表明,Slice方法由于是切片投影,數(shù)據(jù)量相對比較小,因此成像速度快,并可以很清楚的觀測到不同的切片面關(guān)于不同數(shù)軸的繪制效果。但是它重建的圖像表面不光滑,容易出現(xiàn)鋸齒效應(yīng),這可能是由于圖像像素間的距離過大造成的,因此可通過插值計算來緩解這個現(xiàn)象。MIP算法不需要太多的參數(shù)設(shè)置,實現(xiàn)起來比較簡單,但是它對圖像的細(xì)節(jié)顯示得不清楚,在細(xì)節(jié)的描繪上不如Composite算法,這是由于投影密度值選擇方法的不同造成的,因此只能用于對細(xì)節(jié)要求不高的情況下。Isosurface算法是利用表面的信息進(jìn)行重建,因此它的表面繪制效果很逼真,能夠很清楚直觀的顯示物體表面信息。

        通過VT提供的封裝算法,在一個普通的PC機(jī)上實現(xiàn)圖像的三維重建只需幾秒鐘的時間,還可以利用鼠標(biāo)直接拖動三維模型,實現(xiàn)旋轉(zhuǎn)、縮放、平移等操作,便于用戶根據(jù)需要從不同的視角觀察物體,增強(qiáng)了系統(tǒng)的交互能力。與OpenGL和Matlab相比,VT具有使用靈活簡單、重建速度快,可視化效果好等優(yōu)點(diǎn)。

        4 結(jié) 語

        在可視化發(fā)展過程中,VT憑借其開源、靈活、可封裝、可移植等特性被越來越多的開發(fā)人員所采用,它極大地簡化了程序,為開發(fā)人員節(jié)省了很多的時間和精力,在圖像的三維重建中得到了廣泛應(yīng)用。本文所實現(xiàn)的系統(tǒng)就是一個將VT應(yīng)用到體繪制系統(tǒng)中的典型例子。VT將一些常用到的體繪制算法進(jìn)行封裝,系統(tǒng)通過直接調(diào)用這些VT基類實現(xiàn)切片數(shù)據(jù)的三維重建可視化,通過4種不同的繪制方法,展現(xiàn)了不同的繪制效果。這對于幫助人們更好更深層次地分析、理解、掌握圖像信息產(chǎn)生了極大的推動作用。隨著今后信息化進(jìn)程的發(fā)展,可視化領(lǐng)域?qū)懈鼜V闊的發(fā)展空間,體繪制技術(shù)也將會日益改進(jìn)和完善。

        參 考 文 獻(xiàn)

        [1]唐澤圣.三維數(shù)據(jù)場可視化[M].北京:清華大學(xué)出版社,1999.

        [2]Will Schroeder.The VT User′s Guide[M].itware,2002.

        [3]Will Schroeder.Visualization Toolkit[M].3rd Edition itware,2002.

        [4]王道義.TCL/T組合教程[CD2]雙語教材+多媒體教室[M].北京:電子工業(yè)出版社,2001.

        [5]陳琰,梁云,楊海新.基于VT技術(shù)的可視化研究[J].電腦知識與技術(shù),2007,2(11:1 282-1 283,1 304.

        亚洲综合网中文字幕在线| 熟妇人妻av无码一区二区三区| 中文亚洲日韩欧美| 国产精品nv在线观看| 91精品国产九色综合久久香蕉| 国内精品久久久久久99| 国产大学生粉嫩无套流白浆| 日韩美女高潮流白浆视频在线观看| 午夜视频手机在线免费观看| 手机在线看片| 日韩亚洲av无码一区二区不卡| 欧美三级超在线视频| 按摩偷拍一区二区三区| 国产av无码专区亚洲版综合| 中文字幕无码av激情不卡| 国产性一交一乱一伦一色一情 | 亚洲AV一二三四区四色婷婷| 极品少妇在线观看视频| 综合国产婷婷精品久久99之一| 欧美黑吊大战白妞| 亚洲性啪啪无码AV天堂| 久久人妻精品中文字幕一区二区| 狠狠综合亚洲综合亚洲色| 午夜亚洲www湿好爽| 天堂69亚洲精品中文字幕| 国产自拍视频免费在线观看 | 精品淑女少妇av久久免费 | 成年人干逼视频水好多| 亚洲成av人片在线观看www| 欧美在线资源| 亚洲av色精品国产一区二区三区 | 亚洲欧美日韩中文字幕一区二区三区 | 中文字幕女同人妖熟女| 亚洲妇女自偷自偷图片| 亚洲美女啪啪| 日韩精品久久伊人中文字幕| 欧美人与善在线com| 人妻av一区二区三区精品| 久草国产手机视频在线观看| 国产一区亚洲二区三区| 四川少妇大战4黑人|