日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

VTK修炼之道61:体绘制_光线投影+最大密度投影+等值面法

發(fā)布時(shí)間:2025/3/15 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VTK修炼之道61:体绘制_光线投影+最大密度投影+等值面法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.vtkVolumeMapper

vtkVolumeMapper是所有體繪制Mapper類的虛基類,提供接口函數(shù),并由其子類實(shí)現(xiàn)具體功能。該類的繼承關(guān)系如下圖所示:
應(yīng)該掌握一些常用的體繪制類。

2.光線投射:vtkVolumeRayCastMapper

光線投射法是最常用的體繪制方法。它是一種基于圖像序列的直接體繪制方法。 光線投影法的基本原理是從投影圖像平面(通常為平面)的每個(gè)像素沿著視線方向發(fā)射一條穿過體數(shù)據(jù)的射線,然后在射線上按照一定的步長(zhǎng)進(jìn)行等距采樣,對(duì)每個(gè)采樣點(diǎn)采用插值技術(shù)來計(jì)算其體素值,根據(jù)顏色傳輸函數(shù)和不透明度傳輸函數(shù)來獲取相應(yīng)的顏色值和不透明度,最后利用光線吸收模型將顏色值進(jìn)行累加直至管線穿過體數(shù)據(jù)。這樣,就可以得到當(dāng)前平面像素的渲染顏色,最終生成顯示圖像。 光線投影法的優(yōu)點(diǎn)是能夠比較精確地模擬原始體數(shù)據(jù),但計(jì)算量較大,實(shí)時(shí)體繪制對(duì)計(jì)算機(jī)硬件的要求比較高 在VTK中,VTKVolumeRayCastMapper類可用于實(shí)現(xiàn)光線投影體算法,并生成渲染圖元數(shù)據(jù)傳遞給vtkVolume對(duì)象進(jìn)行渲染。 vtkVolumeRayCastMapper采用軟件方法來實(shí)現(xiàn)光線投影算法,精度高但是計(jì)算量比較大,因此渲染速度相對(duì)比較慢。 該類內(nèi)部實(shí)現(xiàn)了兩個(gè)非常重要的函數(shù):
  • vtkVolumeRayCastMapper::SetInput(vtkImageData*):該函數(shù)用于設(shè)置輸入圖像數(shù)據(jù);
  • vtkVolumeRayCastMapper::SetVolumeRayCastFunction(vtkVolumeRayCastFunction*):該類用于設(shè)置光線投射函數(shù)。
vtkVolumeRayCastMapper中計(jì)算每條光線在通過體數(shù)據(jù)后的顏色是通過定義的vtkVolumeRayCastFunction對(duì)象來實(shí)現(xiàn)的。因此,必須為vtkVolumeRayCastMapper指定一個(gè)vtkVolumeRayCastFunction象, ?vtkVolumeRayCastFunction是一個(gè)虛基類,他包含三個(gè)子類。

2.1?vtkVolumeRauCastCompositeFunction

該方式通過Alpha合成技術(shù)生成每個(gè)像素的顏色值。對(duì)于每條光線在穿過體數(shù)據(jù)時(shí),先根據(jù)設(shè)置的采樣步長(zhǎng)進(jìn)行采樣,通過插值技術(shù)來計(jì)算每個(gè)采樣點(diǎn)的像素值;然后根據(jù)vtkVolumeProperty中設(shè)置顏色傳輸函數(shù)和不透明度傳輸函數(shù)來計(jì)算采樣點(diǎn)的顏色和不透明度。最后,對(duì)所有采樣點(diǎn)采用Alpha合成方法計(jì)算最終的顏色。 另外,該方式還可以設(shè)置插值優(yōu)先還是分類優(yōu)先。插值優(yōu)先是指對(duì)投射光線進(jìn)行采樣,計(jì)算采樣點(diǎn)的顏色值時(shí),先通過插值方式計(jì)算該采樣點(diǎn)的標(biāo)量值(灰度值),然后再根據(jù)顏色傳輸函數(shù)和不透明度傳輸函數(shù)計(jì)算該點(diǎn)的顏色值和不透明度分類優(yōu)先是指在計(jì)算采樣點(diǎn)時(shí),先根據(jù)顏色傳輸函數(shù)和不透明度傳輸函數(shù)計(jì)算包含該采樣點(diǎn)的立方體的8個(gè)頂點(diǎn)顏色值和不透明度,然后通過插值方法獲取當(dāng)前采樣點(diǎn)的顏色值與不透明度。選擇插值優(yōu)先還是分類優(yōu)先要通過一下兩個(gè)函數(shù):
  • SetCompositeMethodToInterpolateFirst()
  • SetCompositeMethodToClassifyFirst()
從顯示效果上來說,插值優(yōu)先具有較好的顯示效果,但在一些情況下也會(huì)存在問題。例如,CT圖像中,低于20的值屬于空氣,20~80的部分是軟組織,大于80部分是骨骼。如果先進(jìn)行插值,那么空氣與谷歌之間永遠(yuǎn)不會(huì)相鄰,因?yàn)樗麄冎g一定存在軟組織。但是,我們的牙齒是和空氣直接接觸的,當(dāng)使用插值優(yōu)先策略并使用比較高的采樣率進(jìn)行體繪制時(shí),渲染結(jié)果會(huì)使牙齒看起來像是覆蓋了一層皮膚。

2.2?vtkVolumeRayCastMIPFunction

最大密度投影函數(shù)主要用于對(duì)體數(shù)據(jù)中高灰度值得結(jié)構(gòu)進(jìn)行可視化。當(dāng)光線穿過體數(shù)據(jù)時(shí),在光線上進(jìn)行等距采樣。取采樣點(diǎn)中屬性最大值為該條光線的輸出。光線對(duì)應(yīng)的屏幕像素顏色值就可以通過該值進(jìn)行顏色映射獲得。默認(rèn)情況下,這個(gè)屬性是指體數(shù)據(jù)的像素值或者體數(shù)據(jù)的不透明度,其設(shè)置函數(shù)為:
  • SetMaximizeMethodToScalarValue()
  • SetMaximizedMethodToOpacity()
當(dāng)采用標(biāo)量(灰度)屬性時(shí),先經(jīng)過體數(shù)據(jù)的光線進(jìn)行等距離采樣,然后通過插值計(jì)算每個(gè)采樣點(diǎn)的標(biāo)量值,最后取標(biāo)量值為最大的采樣點(diǎn)對(duì)應(yīng)的顏色和不透明度作為輸出;當(dāng)采樣不透明度作為輸出時(shí),投射光線上每次采樣都要計(jì)算一次不透明度,最后取不透明度最大值的采樣點(diǎn)的顏色和不透明度作為輸出。 通常,最大強(qiáng)度投影算法不計(jì)算明暗信息和深度信息,成像類似于X光,該方法常用于顯示血管的三維結(jié)構(gòu)。該類的使用方法也是非常簡(jiǎn)單的,和vtkVolumeRayCastCompositeFunction一致: vtkSmartPoint<vtkVolumeRayCastMIPFunction> rayCastFun = vtkSmartPointer<vtkVolumeRayCastMIPFunction>::New();

2.3 vtkVolumeRayCastIsosurfaceFunction

對(duì)等值面繪制函數(shù)能夠渲染體數(shù)據(jù)中特定等值面,其中,SetIsoValue(double)函數(shù)用于設(shè)置等值面的值。在進(jìn)行體繪制,所有小于該值的像素不透明度都設(shè)置為0.通過設(shè)定等值面的值,可以重建出某一特定的組織,如皮膚、骨骼等,渲染結(jié)果類似與面繪制。同樣地,使用該函數(shù)進(jìn)行體繪制時(shí),代碼如下: vtkSmartPointer<vtkVolumeRayCastIsosurfaceFunction> rayCastFun = vtkSmartPointer<vtkVolumeRayCastIsosurfaceFunction>::New(); rayCastFun->SetIsoValue(100);三種體繪制輸出結(jié)果如下: 1.光線投影法輸出圖像:效果最好; 2.最大密度投影法輸出圖像:缺乏深度信息(更像X光輸出); 3.等值面法體繪制輸出結(jié)果:與面繪制結(jié)果類似。

3.光線投影體繪制討論

3.1 討論一:投影光線上的采樣點(diǎn)的步長(zhǎng)

光線投影體繪制中,投影光線上的采樣點(diǎn)的步長(zhǎng)是一個(gè)重要參數(shù),決定了體繪制的精度和速度。步長(zhǎng)越小,采樣點(diǎn)就越多,但是體繪制效果提高的同時(shí)計(jì)算量也會(huì)增加。vtkVolumeRayCastMapper中設(shè)置步長(zhǎng)的函數(shù)為: Void SetSampleDistance(float);這里需要注意的是,等值面繪制函數(shù)不需要進(jìn)行采樣,而其他另個(gè)繪制函數(shù)都需要進(jìn)行采樣。在實(shí)際應(yīng)用中,調(diào)整采樣步長(zhǎng)主要考慮的因素有樣本間距、標(biāo)量數(shù)據(jù)以及標(biāo)量數(shù)據(jù)映射的顏色和不同明度變化率。
vtkVolumeRayCastMapper中默認(rèn)的采樣步長(zhǎng)為1;單位為世界坐標(biāo)系。下面顯示了步長(zhǎng)為1和步長(zhǎng)為4的兩種情況對(duì)比:
左側(cè)為步長(zhǎng)等于1的情況;非常精細(xì)。 右側(cè)為步長(zhǎng)等于4的卿狂,比較粗糙。 實(shí)際應(yīng)用過程中,如果體數(shù)據(jù)變化比較劇烈,應(yīng)該適當(dāng)減小采樣步長(zhǎng)以獲得比較精細(xì)的渲染結(jié)果,代價(jià)就是速度的降低。

3.2 討論二:圖像采樣間距(投影光線間隔)

默認(rèn)情況下,圖像采樣間距為1,即每個(gè)像素對(duì)應(yīng)一條投影光線;如果設(shè)為0.5,那么每個(gè)像素對(duì)應(yīng)4條投射光線;如果設(shè)置為2,則每四個(gè)像素對(duì)應(yīng)一條投影光線。設(shè)置圖像采樣距離的函數(shù): void SetImageSampleDistance(float);需要格外注意的是,當(dāng)使用這個(gè)函數(shù)的時(shí)候,必須先關(guān)閉自動(dòng)調(diào)節(jié)采樣距離功能,代碼如下:
SetAutoAdjustSampleDistance(0); //關(guān)閉自動(dòng)調(diào)整采樣默認(rèn)的情況下,該函數(shù)的功能是開啟的,以保證在圖像旋轉(zhuǎn)等交互時(shí),能夠自動(dòng)調(diào)整采樣距離保證實(shí)時(shí)性。如果關(guān)閉此功能,在旋轉(zhuǎn)圖像等交互過程中,體繪制渲染過程會(huì)變得很慢
當(dāng)然,即使我們采用自動(dòng)調(diào)整圖像采樣距離,也可以設(shè)定它的范圍,控制函數(shù)為: void SetMaximunImageSampleDistance(float); void SetMinimumImageSampleDistance(float);下圖顯示的是不同圖像采樣距離的渲染結(jié)果: 左圖的圖像采樣距離為1;右圖的圖像采樣間距為4.同樣,步長(zhǎng)越小,渲染越精細(xì),渲染時(shí)間越長(zhǎng)。

4.參看資料

1.《C++ primer》
2.《The VTK User’s Guide – 11thEdition》
3. ?張曉東, 羅火靈. VTK圖形圖像開發(fā)進(jìn)階[M]. 機(jī)械工業(yè)出版社, 2015.

總結(jié)

以上是生活随笔為你收集整理的VTK修炼之道61:体绘制_光线投影+最大密度投影+等值面法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美成人免费视频 | 人妻 日韩精品 中文字幕 | 久久合合| 成人v片| 黄色一级片在线免费观看 | 黄色av影视 | 五月涩| 性史性农村dvd毛片 日韩精品在线视频观看 | 免费成人国产 | 五月天久久久久久 | 国产精品一区av | 久久人人爽人人爽人人 | 亚洲欧美国产另类 | 91禁在线动漫 | 91网国产| 国产乱轮视频 | 久久精品国产清自在天天线 | 久久成人小视频 | 嫩草影院久久 | 国产刺激高潮av | 波多野结衣在线视频免费观看 | 17c在线| 日韩免费在线观看 | 国产色网站 | 欧美成人777 | 999久久久国产精品 韩国精品一区二区 | xiuxiuavnet| av影片在线观看 | 女人18毛片一区二区三区 | 亚洲最新在线观看 | 成人毛片一级 | 国产又粗又猛又爽又黄又 | 高清福利视频 | 国产一级做a爰片在线看免费 | 91午夜理伦私人影院 | 欧美第一页浮力影院 | 日本中文字幕精品 | 日本久久久久久久久 | 一区二区三区www污污污网站 | 国产精品毛片久久 | 天天射天天干天天 | 亚洲日日干 | 性视频在线 | 久久成人网18网站 | 在线中文字幕一区二区 | 天天色天天综合 | 黄色动漫软件 | 美女视频久久 | 夜夜撸小说 | 成人做爰66片免费看网站 | 日韩亚洲视频在线观看 | 成人一区二区在线观看 | 欧美日韩国产激情 | 欧美亚洲一二三区 | 337p亚洲精品色噜噜狠狠 | 亚洲黄色三级视频 | 久久精品tv | 小日子的在线观看免费第8集 | 日本h漫在线观看 | 久久亚洲电影 | 婷婷五月精品中文字幕 | 51自拍视频| 啪啪五月天| 成人午夜视频在线观看 | 国产伦视频 | 欧美日韩视频网站 | 久草成人在线 | 国语对白自拍 | 尤物视频免费在线观看 | 国产高清在线观看 | 一级全黄裸体免费视频 | 先锋影音av资源网 | 日韩美女爱爱 | 久久久麻豆 | 五月婷婷丁香在线 | 亚洲图片欧美在线 | 国产一区黄 | 亚洲精品无码一区二区 | 露出调教羞耻91九色 | 韩国电影一区 | 蜜臀av一区二区三区 | 女女同性女同一区二区三区按摩 | 国产精品无码999 | 99热精品国产 | 性一区| 国内视频一区二区三区 | 欧美 亚洲 另类 激情 另类 | 日韩一区av在线 | 国产伦精品一区二区三区视频免费 | 日韩视频第一页 | 亚洲毛片视频 | 国产精品中文字幕在线观看 | 动漫3d精品一区二区三区乱码 | 激情另类视频 | 日韩免费网站 | 处破痛哭a√18成年片免费 | 亚洲最大的黄色网 | 最新国产黄色网址 | 天堂中文视频 |