VTK重切

http://www.docin.com/p-733179951.html基於VTK的交互式三維頜面截骨手術實現
http://www.docin.com/p-1442785614.html三維物體的任意方向二維斷面圖像提取
http://www.doc88.com/p-90726223725.html三維物體的交互切割與顯示
http://www.docin.com/p-600412144.html基於VTK的任意平面CT圖像二維交互分割初步研究
http://blog.csdn.net/jean7155/article/details/7556260VTK複習筆記——切割(一)——切割模型
https://max.book118.com/html/2017/0121/85923330.shtm基於VTK的三維重建實現平面剪切

看了一天的重切,還是很茫然。先把看過的資料放進來,大致要用到幾個函數,vtkPlaneWidget、observer和Command設計模式。過幾天熟悉了後再繼續添加內容.

http://www.docin.com/p-48748178.html

實現步驟:
(1)圖像數據的讀入以及繪製過程如圖所示:
這裏寫圖片描述
首先Reader開完成讀入;
(2)圖像數據讀入成功後按光線投影體繪製法重建三維圖像;
(3)使用vtkPlaneWidget構建三維切割平面,vtkPlaneWidget在三維空間中顯示爲一個帶方向的平面。網格平面表明該三維平面的當前位置,箭頭的方向表示該平面的法線方向。用戶可以通過拖動平面的位置和箭頭的方向來控制切割平面的位置和平面。
(4)設置回調函數vtkPlaneCallback,該回調函數用於攔截事件(如vtkCommand::InteractionEvent)和指定該事件對應的響應。當vtkPlaneCallback被調用時,將自動獲取切割平面的最新位置,調用函數的父類爲vtkCommand。


關於新學到的內容,有看到vtkImagereslice和vtkImagePlaneWidget去做重切面的。
下面這個帖子可以去理解重切的概念吧。
int *ext = pData_orz->GetExtent();
double *origin = pData_orz->GetOrigin();
vtkSmartPointer pReslice = vtkSmartPointer::New();
pReslice->SetOutputOrigin(origin);
pReslice->SetOutputExtent(ext);
pReslice->SetAutoCropOutput(1);//!!!一定要加這句話
pReslice->SetInput(pData);
pReslice->Update();

http://tieba.baidu.com/p/3947852001?pid=73061174205&cid=0#73061174205

這個帖子是用vtkImagePlaneWidget做的,

http://tieba.baidu.com/p/5022966060
顯然,我在vtk7.1中調試不出來,用官網的例子,可以
http://www.vtk.org/gitweb?p=VTK.git;a=blob_plain;f=Interaction/Widgets/Testing/Cxx/TestResliceCursorWidget2.cxx

只有修改一點點,吧int 後面的函數修改爲main,因爲在vs下面編譯的,最後的return也要做修改,改爲0,即可編譯通過。

再回過頭來仔細看水靈的vtk進階書的第九章,MFC中有段話:

交互式圖像切分:交互式圖像切分,切片圖像提取。
vtkResliceCursorWidget和vtkResliceCursor類實現交互式圖像切分,vtkResliceCursorWidget對象中需要定義相對應的vtkResliceCursor對象。vtkResliceCursorWidget定義十字座標軸爲用戶提供便捷的切分和交互方式,支持座標軸的旋轉和平移;當座標軸發生改變時,調用vtkResliceCursor來進行圖像切分並更新到vtkRenderer對象中。

vtkImagePlaneWidget實現切片圖像提取。該類內部定義一個vtkImageReslice對象,利用vtkResliceCursor中定義的切分平面來切分圖像。在其內部通過紋理映射繪製到平面上,通過用戶指定的vtkRenderer進行顯示。
沒有定義vtkActor,主要是在顯示圖像時,通過相關的widget來實現,爲widget設置vtkRenderer即可在其內部生成相應的vtkActor來實現。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章