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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

3DSlicer8:FAQ-2

發(fā)布時間:2025/3/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 3DSlicer8:FAQ-2 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.MRML

1.1 Introduction

  • MRML用來描述Slicer中的場景并映射到他的數(shù)據(jù)模型。MRML庫提供了一個API用于管理醫(yī)學圖像數(shù)據(jù)類型(體數(shù)據(jù)、模型、變換、基準點、相機等)和可視化;
  • 每種數(shù)據(jù)類型都以一個特殊的MRML node(節(jié)點)來呈現(xiàn);MRML Scene就是所有MRML nodes的集合;Slicer MRML數(shù)據(jù)模型不依賴于系統(tǒng)的可視化組建和算法組件;

1.2 MRML Scene

  • MRML Scene管理MRML nodes(增加、刪除、尋找、按類尋找);
  • MRML Scene 提供了MRML nodes的可持續(xù)性(從XML文件中讀取、寫入到XML文件);
  • MRML Scene提供了 Undo/Redo 機制;

1.3 MRML Nodes

  • MRML nodes存儲Slicer應用的狀態(tài),包括原始數(shù)據(jù)和可視化參數(shù);下面是關(guān)鍵MRML nodes的集合,他們存儲著核心Slicer模塊的狀態(tài):

  • 所有的MRML nodes必須應用某種標準的API:ReadAttributes/WriteAttributes/Copy等;
MRML nodes采用C++類等級進行管理,都繼承于vtkMRMLNode 類。例如,vtkMRMLTransformableNode是體數(shù)據(jù)Volume、模型Model、基準點Fiducial和變換Transformation nodes的父類。vtkVolumeNode是vtkMRMLScalarVolumeNode和vtkMRMLVectorVolumeNode的父類。MRML nodes的類等級如下圖所示:

1.4 引用MRML 節(jié)點

一些MRML nodes 也會引用其他 nodes。例如,Transformable Node 引用了Transformation Node。Transformation Node引用了父級的Transformation Node。引用通過 Node ID存儲。
  • 使用VTKSetReferenceStringMacro設置引用ID(場景中注冊過程);
  • 訪問方法在訪問之前應該通過ID檢查引用節(jié)點是否仍然在MRML場景中;

1.5 MRML事件與觀察者

MRML場景和每個節(jié)點的改變將會通過vtk事件和命令-觀察者機制傳遞給其他的觀測節(jié)點,GUI對象和Logic對象。一些經(jīng)驗規(guī)則如下:
  • Use vtk AddObserver() and InvokeEvent() methods. vtk SetMacro generates ModifiedEvent.
  • The command-observer mechanism for MRML is implemented using helper vtkObserverManager, class, MRML Observer macros, and ProcessMRMLEvents method.
  • Observers should store a registered pointer to a MRML node to prevent callbacks on a deleted object.

1.6 如何添加一個MRML node到場景中?

  • 一般模式
vtkNew<vtkMRML???Node> nodeToAdd; ... mrmlScene->AddNode(nodeToAdd.GetPointer());
  • 向場景中添加一個多邊形數(shù)據(jù)
vtkNew<vtkMRMLModelNode> modelNode; modelNode->SetPolyData(polyData); mrmlScene->AddNode(modelNode.GetPointer());
  • 從文件中載入多邊形數(shù)據(jù)
vtkSlicerModelsLogic* modelsLogic = ...; //modelsLogic->SetMRMLScene(mrmlScene); modelsLogic->AddModel(polyDataFileName);

1.7當載入MRML場景時遇到如下錯誤怎么辦?

ERROR: In /path/to/VTK/Imaging/vtkImageMapToColors.cxx, line 153 vtkImageMapToColors (0x268f190): RequestInformation: No LookupTable was set but number of components in input doesn't match OutputFormat, therefore input can't be passed through!ERROR: In /path/to/VTK/Imaging/vtkImageExtractComponents.cxx, line 239 vtkImageExtractComponents (0x26947e0): Execute: Component 1 is not in input.ERROR: In /path/to/VTK/Imaging/vtkImageExtractComponents.cxx, line 239 vtkImageExtractComponents (0x26947e0): Execute: Component 1 is not in input.[...]要確定每一個colorNodeRef屬性設置在每一個VolumeDisplay節(jié)點上。

1.8 如何在2D視窗中更改體數(shù)據(jù)?

appLogic = slicer.app.applicationLogic() selectionNode = appLogic.GetSelectionNode() selectionNode.SetReferenceActiveVolumeID(bg) selectionNode.SetReferenceSecondaryVolumeID(fg) appLogic.PropagateVolumeSelection()

2.IO

為什么我的節(jié)點Writer沒有出現(xiàn)在保存的對話框中?
  • 需要在qSlicerIOManager中注冊我們的Writer 用qSlicerYourModule::Setup();
資料:SlicerIOManager=?http://apidocs.slicer.org/master/classqSlicerIOManager.html?
示例:https://github.com/Slicer/Slicer/blob/3dd75da/Modules/Loadable/Markups/qSlicerMarkupsModule.cxx
  • 你的節(jié)點需要成為vtkMRMLStorableNode的子類;

3.Modules

3.1 在Slicer的build-tree中,Slicer的模塊位于哪里?

Slicer模塊和庫位于Slicer主構(gòu)建目錄: ~/Slicer-Superbuild/Slicer-build

3.2 如何從C++可加載模塊調(diào)用一個CLI模塊?

問題描述:http://slicer-devel-archive.65872.n3.nabble.com/Calling-CLI-module-from-a-C-loadable-module-tt4031930.html 實例分析:https://github.com/Slicer/Slicer/blob/master/Modules/Loadable/CropVolume/Logic/vtkSlicerCropVolumeLogic.cxx#L318-351

3.3 如何從命令行調(diào)用一個CLI模塊?

示例: Slicer.exe --launch CastScalarVolume input.mha output.mha 在Windows中使用要注意:
  • 需要使用Slicer應用程序的全名,即Slicer.exe而不是Slicer;
  • 為了獲得CLI模塊支持的命令行參數(shù)的幫助,可以運行下面語句:
Slicer.exe --launch CastScalarVolume 2>c:\SomeWriteAbleDirectory\usage.txt 與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的3DSlicer8:FAQ-2的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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