3DSlicer10:体系结构1
1.系统架构
Slicer平台是基于VTK、ITK、CTK、KWWidgets、CMake、Qt和Python等开源软件开发的。主要采用的编程语言是C++、Python、JavaScript。Slicer体系架可以分为3层:基础层、算法层和应用层。
- 基础层
由操作系统提供的最底层的库,典型如OpenGL、硬件驱动。OpenGL可为基于3D的、专业的应用程序提供优质的3D图形图像性能,以便高效使用主机系统提供的窗口和图形资源。硬件驱动满足加速渲染。
- 算法层
架构的中间层,是可移植的依赖库,包括基础编程语言库(C++、Python)和一些实现图像处理的算法库。提供了更高层系的功能和抽象,包括CMake、ITK、VTK、CTK等。其中:1.CMake实现了Slicer和其他算法库之间的跨平台构建配置、封装、测试;2.VTK提供计算机图形和三维可视化的关键组成部分;3.ITK医学图像配准和分割的工具包;4.CTK,Common Toolkit是以提供应用程序级别的DICOM支持,插件框架和专门的GUI部件为重点的生物医学图像运算库;5.Qt搭建跨平台的GUI;6.DCMTK实现DICOM标准,并使DCM和DCM数据服务进行交互。该层中的很大一部分依赖库,如ITK、VTK、CMake、CTK,都是有NA-MIC开发的,他们和Slicer一道被称为NA-MIC工具包。
- 应用层
Slicer应用程序,包括Core、Slicer modules、Slicer Extensions。1.应用程序核心Core实现了用户界面,提供了了数据输入/输出接口,利用算法实现可视化,并且预留了开发新的模块和扩展的接口。2.模块和扩展实现数据处理算法,例如分割、配准、图像滤波的算法。
2.程序框架
Slicer模块是一些基于ITK、VTK、VTK等算法库实现其功能的独立插件。包括三种类型:
- Command Line Interface Modules 命令行模块
- Loaded modules 可加载模块
- Scripted modules 脚本模块
Slicer扩展功能插件也是基于算法的一些功能模块,Modules已经被完全集成进Slicer;而Extension需要用户自行添加。2.1 Command Line Interface Module 命令行模块
可以独立执行的模块,但输入输出参数是有限的,输入/输出的类型无法选择CLIM是Slicer所有模块中数量最多的模块,一般使用ITK实现其功能。这些ITK算法主要有图像过滤模块、扩散成像功能模块、表面图像模块、配准和分割模块。
2.2 Loaded Modules 可加载模块
可加载模块是一种使用C++开发的模块,针对每个模块的功能,开发了特定的图形用户界面,并添加了一些基本功能。如Color模块提供了颜色表,用以区分人体组织结构;Data模块分析当前显示的数据。主要的可加载模块和功能如下:
绝大多数可加载模块的功能都与算法无关,只是给Slicer提供了一种基本功能。Generally Speaking,Modules used to realize algrithm are earsier in CLI modues or Scripted modules.但是,最基础的功能,如果也采用命令行或者脚本模块的形式来实现反而不方便,这个时候就能体现C++的便利性。2.3 Scripted Modules 脚本模块
采用Python脚本语言开发的,模块通过调用Python封装的VTK、ITK、Ot等库的API实现模块的功能。Slicer中包含的Python脚本模块主要包括以下几个:
3.Slicer模块的加载(插件技术)
Slicer的模块很多,又不是必须需要,为了提高用户体验度,Slicer的模块加载环节采用了“Plug-in”机制。“Plug-in”机制指Slicer功能模块设计时保持了很高的独立性,使用时可以选择性加载。"Plug-in"(Plug-in,addin,add-in,addon或add-on)是一种计算机应用程序,它和主应用程序(host application)互相交互,以提供特定的功能。应用程序支持Plugin有许多原因,一些主要原因包括:使得第三方开发者有能力扩展应用程序,以提供无法先期预料的特色;减小应用程序的大小;由于软件版权之间的不兼容性将源代码和应用程序分享。关于插件更多的细节,参考百度百科:https://baike.baidu.com/item/plugin/5015240?fr=aladdin&fromid=6689350&fromtitle=plug-in
4.Slicer的扩展
Slicer Extension就是根据需要安装的外部插件,通过一个或几个模块完成一项功能,具有很强的共享性。这种机制很像当下比较热门的Android操作系统以及其应用程序APP。
3DSlicer10:体系结构1相关推荐
- 王道考研 计算机网络笔记 第一章:概述计算机网络体系结构
本文基于2019 王道考研 计算机网络: 2019 王道考研 计算机网络 个人笔记总结 后续章节将陆续更新- 目录 一.概念.功能.组成.分类 1. 计算机网络的概念 2. 计算机网络功能 3. 计算 ...
- 基于ARMv8的固件系统体系结构
基于ARMv8的固件系统体系结构 The architecture of ARMv8-based firmware systems 自2011年发布以来,ARMv8处理器架构在移动设备市场上已经相当普 ...
- 人工智能微控制器体系结构
人工智能微控制器体系结构 Microcontroller architectures evolve for AI 如果把人工智能和物联网交叉,会得到什么?AIoT是一个简单的答案,但是也可以为微控制器 ...
- AI芯片体系结构目标图形处理
AI芯片体系结构目标图形处理 AI chip architecture targets graph processing 可编程图形流处理器(GSP)能够执行"直接图形处理.片上任务图管理和 ...
- AMD–7nm “Rome”芯片SOC体系结构,支持64核
AMD–7nm "Rome"芯片SOC体系结构,支持64核 AMD Fully Discloses Zeppelin SOC Architecture Details at ISS ...
- 基于ARM Cortex-M的SoC存储体系结构和实战
基于ARM Cortex-M的SoC存储体系结构和实战 System on Chip Architecture Tutorial Memory Architecture for ARM Cortex- ...
- 主存储器是现代计算机系统的数据传送中心,第2章计算机体系结构习与题答案.doc...
第2章计算机体系结构习与题答案 第二章习题 复习题 1.简述冯?诺依曼原理,冯?诺依曼结构计算机包含哪几部分部件,其结构以何部件为中心? 答:冯?诺依曼理论的要点包括:指令像数据那样存放在存储器中,并 ...
- 未来计算机体系结构,华中科大金海:未来是计算机体系结构的“黄金十年” 要培养大量创新人才...
近日,华为开发者大会2021(HDC.Cloud)在深圳举行.大会以"每一个开发者都了不起"为主题,汇聚高校学者.商业领袖.技术专家等各界顶级大咖,共同探讨ICT技术的基础创新与应 ...
- 软件体系架构模式之二分层体系结构
分层体系结构模式是n层模式,其中组件被组织在水平层中.这是设计大多数软件的传统方法,并且具有独立性.这意味着所有组件都是互连的,但彼此之间不依赖. 图1:分层架构 在此体系结构中有四层,其中每一层在模 ...
最新文章
- c语言编程矩阵主对角线相同,急求!c语言 求N*N矩阵中主对角线和次对角线的元素之和...
- 从头开始学JavaScript (七)——函数
- 计算bom的准确用量
- sql server关闭存储过程中未提交的事务
- 稀疏表达:向量、矩阵与张量(中)
- 团队开发——冲刺1.d
- (pytorch-深度学习)循环神经网络
- 限流神器Sentinel,不了解一下吗?
- Windows下搭建IOS开发环境(一)
- qt怎么设置标签背景图片_HTML中怎么设置h1的字体样式你知道吗?关于设置h1标签的样式详解...
- Unity2020.1新功能探路:2D设计师工具相关更新
- Linux服务器性能的重要指标:打开文件数的限制
- python数据分析之(4)读写数据文件CSV,EXCEL等
- Kepware IOT Gateway Rest server
- Origin 使用笔记
- 数据库异常用户sa登录失败_Sa登录失败
- 安卓比较好的数独软件_有没有比较好的数独游戏APP?
- Zabbix整合ELK实现日志数据的分析实时监控
- java实现图片的压缩且保留图片尺寸不变
- 概率论各种基础分布期望和方差推导过程汇总