3DSlicer进阶
文章平均质量分 80
沈子恒
计算机视觉 自然语言处理 推荐系统 架构设计
展开
-
3Dslicer1:入门及基本控制
1.用户环境模块面板:显示模块界面,Slicer中功能通过模块化的方式实现;切片窗口:显示三个切片分量,冠状面R、矢状面Y、水平面G;数据探针:用于显示鼠标在切片视图中移动时的实时坐标信息。1.1 系统主菜单1.File-文件管理功能Add Data:添加Slicer数据,可以是一般的Slicer场景;DICOM:添加DCM数据文原创 2017-07-30 19:32:13 · 37320 阅读 · 10 评论 -
3DSlicer12:风格准则
1.代码风格从VTK继承的类要保持VTK传统命名规则。VTK的代码设计标准参考如下:http://www.vtk.org/Wiki/VTK_Coding_Standards1.1 命名风格缩写词应该用同样大小的字母表示(全大写/全小写)RASToSlicer RasToSlicer;vtkMRMLvtkMrml;vtkSlicer vTKSlicer原创 2017-08-05 18:21:38 · 2309 阅读 · 0 评论 -
3DSlicer13:Command Line Interface(CLI)
1.ExtensionWizard创建初始框架1.1 ExtensionWizard综述ExtensionWizard是一个工具的集合,既可以利用Slicer中的图像用户接口(GUI)访问,也可以在一个独立的Python控制台使用命令行接口(CLI)访问。Slicer Module通常包含几个不同种类的文件,例如CMakeList.txt、源文件、资源文件。很多情况下,文件名以及文原创 2017-08-06 16:04:52 · 2423 阅读 · 0 评论 -
3DSlicer14:Loadable Module
1.简述可加载模块是针对Slicer设计的C++ Plugin(插件)。他们为特定的功能定义GUI,因为他们对应用程序具有完全控制权。C++共享库全权控制UI(基于Qt)和Slicer的内部构件(如MRML、logic、显示管理)为繁重的计算进行优化2.何如设计Loadable Module?PPT参考资料:https://na-mic.org/wiki原创 2017-08-06 18:32:25 · 1622 阅读 · 1 评论 -
3DSlicer28:PLUS
1.configuration file包含的XML元素Version Major版本号PlusRevision创建配置文件更加详细的plus版本Data collection :定义所有用于采集和处理数据的设备StartupDelaySec:开始使用各种采集设备之前,留有充足的时间初始化。DeviceSetName 设备名称,如NDI Polaris.原创 2017-09-13 18:04:07 · 1866 阅读 · 2 评论 -
3DSlicer25:Report an Error
https://www.slicer.org/wiki/Documentation/Nightly/Report_a_problemSlicer Forum:https://discourse.slicer.org/ shenzihengSlicer MantisBT:https://issues.slicer.org/my_view_page.php原创 2017-09-05 21:35:29 · 1289 阅读 · 0 评论 -
3DSlicer23:Module-Create Loadable
1.Overview可加载模块可以看做是Logic和UI联合构成的。2.Creating Loadable Module创建模块目录建议使用ExtensionWizard采用模板的方法生成文件和文件目录。Build可以使用CMake GUI、也可以使用命令行的方法。注意的是一定要指定Slicer_DIR为实体。例如:Sli原创 2017-08-28 17:43:30 · 1935 阅读 · 0 评论 -
3DSlicer22:Module-ExtensionWizard & Build & Install
1.前言Slicer模块典型包含几种不同类型的模块,如CMake文件、Source文件、资源文件。在大多数情况下,为了方便编译,文件名称和文件中文本字符串的名称需要保持一致。ExtensionWizard是一个简化创建流程的工具。2.使用GUI进入Extension开启Slicer,选择ExtensionWizard即可。创建Extension:Ex原创 2017-08-28 11:57:05 · 2043 阅读 · 4 评论 -
3DSlicer21:Windows7+VisualStudio2013构建3DSlicer史上最详细版(Debug)
1.前言之前数次在虚拟机上成功编译Slicer,感觉过程挺简单的。由于科研项目需要在Windows7环境下开发,所以研究了一下。考虑到国内对于3DSlicer的需求很高,然后相关参考文献及资料极其匮乏,本系列博客尝试改变这种现状,所有项目及教程均具有可重复性。转载标识:Shenziheng/Shenchunxu @Tsinghua Univ.2.编译2.1 推荐配置原创 2017-08-25 10:54:08 · 6397 阅读 · 23 评论 -
3DSlicer26:Add Extension/Module filepath,"no module named ..."
1.问题描述:环境:Slicer 4.7.0 Windows7 64bit用Slicer提供的ExtensionWizard模块创建extension,经过CMAKE、VisualStudio编译,添加到Slicer中。每次打开Slicer,Python Interactor都会报这个错。2.SlicerForum开发者的建议https://disco原创 2017-09-06 16:57:21 · 1515 阅读 · 0 评论 -
3DSlicer24:Module-Create Scripted
参考资料:https://na-mic.org/wiki/2013_Project_Week_Breakout_Session:Slicer4Python#Develop_self-tests这个是官方给的一个文档,也是我目前浏览这么多资源过程中,发现最详细的资料。原创 2017-08-29 16:10:30 · 1193 阅读 · 0 评论 -
3DSlicer32:CreateModels-Module Analysis
1.qSlicerCreateModelsModule.h#ifndef __qSlicerllshCreateNewModelsModule_h#define __qSlicerllshCreateNewModelsModule_h// SlicerQt includes#include "qSlicerLoadableModule.h"#include "qSlicerll原创 2017-09-24 16:24:59 · 1554 阅读 · 0 评论 -
3DSlicer29:Debug or Dev-170918
1.the relationship between module & extension?Slicer的plus-in机制不必多谈。下面仅初步谈论Module和Extension的关系,并就创建和调试过程中的一些细节问题进行总结。Extension是实现一个功能的实体,可以包括若干的module每一个module都是实现某种特定功能的单位总而言之,一个Extension包原创 2017-09-18 09:28:39 · 1335 阅读 · 0 评论 -
3DSlicer30:VS-Qt5VSaddin-qt4.8.7dev
1.问题与思考关于3DSlicer的功能开发,不可避免的会使用Loadable模块。这主要涉及Widget设计、多Module协作以及Slicer内部集成函数or类的调用。这里主要想记录的是如何利用VS直接进行Widget设计。在真正动手操作的时候,我碰到了以下问题:1.因为Slicer官方推荐,最稳定的配置是利用Qt4.8.7进行开发(当然,我也没有利用Qt5进行编译过),但原创 2017-09-19 08:49:26 · 1601 阅读 · 0 评论 -
3DSlicer31:结构的实例分析IGSReader
1.qSlicerIGSReaderModule.h#ifndef __qSlicerIGSReaderModule_h#define __qSlicerIGSReaderModule_h// SlicerQt includes#include "qSlicerLoadableModule.h" //模板类#include "qSlicerIGSReaderModuleExport原创 2017-09-19 09:52:03 · 1558 阅读 · 0 评论 -
3DSlicer20:GUI Structure
1.前言Slicer在Version4之前,GUI使用Kitware公司的GUI工具KWWidget开发,KWWidget不支持Unicode。而Slicer的最新Version4使用了Nokia公司的Qt代替KWWidget进行开发。2.Slicer界面结构Slicer应用程序的结构由应用程序核心、Slicer模块组成。应用程序核心部分实现Slicer用户界面,提供数原创 2017-08-19 17:27:13 · 3029 阅读 · 1 评论 -
3DSlicer10:体系结构1
1.系统架构Slicer平台是基于VTK、ITK、CTK、KWWidgets、CMake、Qt和Python等开源软件开发的。主要采用的编程语言是C++、Python、JavaScript。Slicer体系架可以分为3层:基础层、算法层和应用层。基础层由操作系统提供的最底层的库,典型如OpenGL、硬件驱动。OpenGL可为基于3D的、专业的应用程序提供优质的3原创 2017-08-03 17:35:18 · 3870 阅读 · 0 评论 -
3Dslicer2:数据与帮助
1.数据加载1.1 3Dslicer支持的数据格式Slicer支持多种医学图像数据的处理。由于Slicer的功能通过模块实现。数据类型也由模块来进行使用,某一个模块支持的数据类型可能有多种,例如数据模块可以对场景数据进行读取、写入的操作;体数据模块对影像图数据提供支持,这些影像图数据的格式不仅包括jpeg、png等Windows操作系统下最常见的图像文件格式,还包括标准的医学影像数据D原创 2017-07-30 20:22:49 · 6378 阅读 · 5 评论 -
3DSlicer4:模块管理(二)场景视图、体数据、体绘制
1.场景视图模块(Scene View Module)场景视图用于组织场景数据中多个“实时”视图。用户创建视图数量没有上限,仅需要对场景的参数进行控制。3DSlicer的场景视图功能通过场景视图模块来实现。为了方便随时操作,Slicer提供快捷工具。界面如下所示:2.体数据模块(Volumes Data Module)加载数据后,该模块可以调节体数据的显示参原创 2017-07-31 20:31:25 · 5483 阅读 · 0 评论 -
3DSlicer3:模块管理(一)颜色、DCM、数据、模型、注释
1.颜色管理模块(Colors Module)原创 2017-07-31 17:19:20 · 6990 阅读 · 3 评论 -
3DSlicer15:Scripted Module
1.循序渐进的脚本模块脚本模块是采用Python编写的。1.1 使用ModuleWizard的模板创建Scripted Module参考:https://na-mic.org/wiki/2013_Project_Week_Breakout_Session:Slicer4Pythonhttps://www.slicer.org/wiki/Documentation/Night原创 2017-08-08 11:06:04 · 1750 阅读 · 0 评论 -
3DSlicer5:开发者必晓ABC
1.简言之3Dslicer基于NA-MIC工具包开发而来,主要使用的编程语言是C++。其使用的NA-MIC工具包包括VTK、ITK、CTK、Cmake、Qt、Python。NA-MIC, the National Alliance for Medical Imaging Computing.NA-MIC is a multi-institutional, interdisc原创 2017-08-01 17:46:58 · 6144 阅读 · 1 评论 -
3DSlicer16:数据类型MRML
1.Slicer MRML数据类型综述MRML提供API(应用程序接口)管理医学图像数据类型(Volume、Model、Transform、Fiducial、Camera等)和它们的可视化;每种数据类型都用一个特定的MRML节点表示;MRML场景就是MRML节点的集合;Slicer的MRML数据模型(data Model)独立于Slicer系统的可视化组件Visualization原创 2017-08-08 16:12:09 · 5590 阅读 · 0 评论 -
3DSlicer6:编译、调试、规范化的开发
1.编译Step1:CMake生成Slicer工程文件使用Cmake生成Slicer的解决方案(Solution)包括两小点:指定源代码目录:C:/myProjects/Slicer4;目标目录:C:/myProjects/Slicer4-SuperBuild-DebugConfigure后,添加qmake路径:QT_QMAKE_EXECUTABLE=C:/myPr原创 2017-08-01 20:16:50 · 4669 阅读 · 0 评论 -
3DSlicer17:Logics
1.Logics综述Logic是算法的集合,主要处理场景中的MRML节点。Logic可以是:Active(主动):观测场景和节点,当接收事件改变时进行响应Passive(被动):实用函数的集合用来简化节点的处理a mix of both:不理想...2.Logic的类型在Slicer中存在5种Logics。他们功能通常由他们的依赖库决定。不同Logic类原创 2017-08-08 18:31:42 · 1376 阅读 · 0 评论 -
3DSlicer18:Layouts
1.主要的类vtkMRMLLayoutNode: 描述视图布局的节点,一个场景只存在一个布局节点。vtkMRMLLayoutLogic: 控制/观测图层节点,如果需要会自动创建视图节点(在布局节点描述中引用,而不是场景中引用)。vtkMRMLAbstractViewNode: 所有视图节点的抽象类(例如vtkMRMLSliceNode, vtkMRMLViewNode, vtkMRML原创 2017-08-08 21:07:08 · 1454 阅读 · 0 评论 -
3DSlicer19: DirectoryStructure
1.Slicer1.1 Build TreeSlicer_HOMEbindesignericonengineslibSlicer-X.Ycli-modulesqt-loadable-modulesqt-scripted-modulesshareSlicer-X.Ycli-modulesCLIModulesName1原创 2017-08-08 21:46:10 · 1228 阅读 · 0 评论 -
3DSlicer7:FAQ-1
1.Core Feature 应该采用C++还是Python进行开发?这并没有统一的答案,因为Slicer应用各种语言和技术进行开发。MRML和大多数逻辑操作符是采用c++开发的,如VTK子类应用和大多数的界面是采用C++开发的,如QWidget子类很多和C++捆绑在一起的重要模块,如LabelStatistics/ExtensionWizard,采用Python脚本开发;另外原创 2017-08-02 16:50:17 · 1795 阅读 · 0 评论 -
3DSlicer8:FAQ-2
1.MRML1.1 IntroductionMRML用来描述Slicer中的场景并映射到他的数据模型。MRML库提供了一个API用于管理医学图像数据类型(体数据、模型、变换、基准点、相机等)和可视化;每种数据类型都以一个特殊的MRML node(节点)来呈现;MRML Scene就是所有MRML nodes的集合;Slicer MRML数据模型不依赖于系统的可视化组建和算法组件原创 2017-08-02 21:06:47 · 2008 阅读 · 0 评论 -
3DSlicer9:FAQ-3
1.什么是拓展?拓展,Extension,可以视为捆绑了一个或者多个模块module的封装包(delivery package)。安装一个拓展功能之后,相关的模块将会以内置模块形式呈现给用户。Slicer目前拥有相当数量的拓展,具体参见如下网址:https://www.slicer.org/wiki/Documentation/Nightly/ExtensionsSli原创 2017-08-03 14:22:58 · 1901 阅读 · 0 评论 -
3DSlicer11:体系结构2
1.复习MRML类型MRML,Medical Reality Markup Langguage,数据类型可以独立于系统可视化和算法部分执行。MRML Scene数据对象包含了Slicer应用程序的状态、原始数据、可视化参数等诸多数据。每一个数据类型由特定的MRML Node来表示。MRML Scene实际上就是MRML Nodes的集合。对于MRML数据类型,Slicer附原创 2017-08-03 20:43:57 · 2938 阅读 · 0 评论 -
3DSlicer33:Adding MRML
1.Adding in MRML to SlicerMRML是Slicer中用到的场景描述,并映射到他的数据模型。MRML库提供了API管理医学图像数据类型和可视化,数据类型包含Volume、model、transform、fiducials、camera...在MRML中,每一种数据类型都通过一个特殊的MRML节点表示。MRML场景实际上就是不同节点的集合。Slicer MR原创 2017-09-28 11:27:16 · 2746 阅读 · 0 评论