医学图像包——DCMTK、VTK、ITK、RTK、SimpleITK

1.ITK-医学图像处理软件包

ITK( Insight Segmentation and Registration Toolkit)是美国国家卫生院下属的国立医学图书馆开发的一款医学图像处理软件包,是一个开源的、跨平台的影像分析扩展软件工具。

ITK的开发过程中采用了先进的多模态数据分割配准算法,用于处理图像配准和分割的问题。 ITK是用C++实现的,能够跨平台,并用CMake来管理编译过程来保证编译过程独立于平台。除此以外,它还使用一种叫做卷的处理过程,来产生C++和 其他其他解释程序之间的接口,从而使得开发者能用各种不同的程序语言来开发。

ITK的C++执行风格是基于泛型(generic programming)编程,也就是说他使用的是模板来保证相同的代码能广泛的应用于任何类或者类型。这种C++模板的方式使得编码过程很高效,并且使 很多软件的问题在编译的时候就发现了,而不是在运行的时候。

备注:医学图像处理的话建议用ITK+VTK,ITK做底层图像处理算法,VTK做可视化显示,ITK和VTK中间用itkImageToVTKImageFilter

2.SimpleITK-ITK的简化接口

SimpleITK是ITK的简化接口,使用起来更加方便,有多种语言接口。(python版,安装比较简单,pip install SimpleITK)

SimpleITK是美国国家医学图书馆Insight Segmentation and Registration Toolkit (ITK)的一个简化的开源接口,这是一个c++开源图像分析工具包,在学术界和工业界得到了广泛的应用。SimpleITK支持8种编程语言,包括c++、Python、R、Java、c#、Lua、Ruby和TCL。SimpleITK的二进制发行版目前可用于所有三种主要操作系统(Linux、OS X和Windows)。

SimpleITK是专门处理医学影像的软件,在SimpleITK中,图像的概念与我们在计算机视觉中常用的RGB图像差异很大,后者只是一个多维矩阵,是一个数学上的概念,而在SimpleITK中图像是一种物理实体,图像中的每一个像素都是物理空间中的一个点,不光有着像素值,还有着坐标,间距,方向等概念。

在这里插入图片描述

size:图像在各维度的像素个数
spacing:图像各维度上像素之间的距离(物理层面的,有单位,一般为mm)
physical extent:图像在物理空间中的大小
Origin:图像原点的坐标(物理层面的,有单位,一般为mm,与spacing保持一致)
direction:采用方向余弦矩阵,也就是图像自身坐标系相对于世界坐标系(固定不动的)的角度,再直白点就是新坐标系在原坐标系上各个方向的投影

3.RTK-CBCT重建算法包

RTK(RTK官网)是一个开源的CBCT重建算法包,是Kitware公司旗下的,基于ITK包扩展出来的。RTK实现了很多现有的CT图像重建算法,包括ADMM,SART,SIRT,POCS等。此外RTK包是基于泛型编程思想来写的。RTK具有完善的开发文档库。

Cone Beam CT因其射线效率高,采集效率高等优点,广泛用于解剖成像与放射治疗(Radiation Therapy)。

The Reconstruction Toolkit (RTK)重建工具包是一种基于Insight Toolkit(ITK)的用于快速圆锥束CT重建的开源跨平台软件。RTK由RTK财团开发。RTK提供或将提供:

重建的基本运算符,例如滤波、正向、投影和反向投影、多线程CPU和GPU版本、呼吸运动矫正工具、多个扫描仪的I/O、散射校正原始数据的预处理

4.DCMTK-dicom协议开源库

DCMTK是由德国offis公司提供的开源项目,几乎实现了完整的DICOM协议,是3大dicom开源库之一。DCMTK采用C++语言开发。

由于现在的医学影像设备的图像存储和传输正在逐渐向DICOM标准靠拢,在我们进行医学图像处理的过程中,经常需要自己编写和DICOM格式的图像相关的各种程序模块,以完成自己处理功能。如果从头开始理解DICOM的协议,然后完全自己编写这些代码来实现这些协议,是一件工程浩大的事情。德国offis公司开发的DCMTK,为我们提供了实现DICOM协议的一个平台,使得我们可以在它的基础上轻松的完成自己的主要工作,而不必把太多的精力放在实现DICOM协议的细节问题上。

这个开发包经过10多年的开发和维护,已经基本实现了DICOM协议的所有内容。该开发包提供所有的源代码、支持库和帮助文档。DCMTK提供了在各种操作系统下使用的可能版本,如LINUX、SUN、MACOS、WINDOWS等,用户可根据自己的开发平台进行编译。

DICOM(Digital Imaging and Communications in Medicine)即医学数字成像和通信,是医学图像和相关信息的国际标准(ISO 12052)。DICOM被广泛应用于放射医疗、心血管成像以及放射诊疗诊断设备(X射线,CT,核磁共振,超声等),并且在眼科和牙科等其它医学领域得到越来越深入广泛的应用。

5.VTK-三维计算机图形学、图像处理和可视化

Vtk,(visualization toolkit) 是一个开源的免费软件系统,主要用于三维计算机图形学、图像处理和可视化。Vtk是在面向对象原理的基础上设计和实现的,它的内核是用C++构建的,包含有大约250,000行代码,2000多个类,还包含有几个转换界面,因此也可以自由的通过Java,Tcl/Tk和Python各种语言使用vtk。

视觉化工具函式库(VTK,Visualization Toolkit)是一个开放源码,跨平台、支持并行处理(VTK曾用于处理大小近乎1个Petabyte的资料,其平台为美国Los Alamos国家实验室所有的具1024个处理器之大型系统)的图形应用函式库。2005年时曾被美国陆军研究实验室用于即时模拟俄罗斯制反导弹战车ZSU23-4受到平面波攻击的情形,其计算节点高达2.5兆之多。Vtk几乎可以在任何一个基于Unix的平台上操作,以及Windows 95/98/NT/2000/XP。

VTK是一个开放源码、自由获取的软件系统,全世界的数以千计的研究人员和开发人员用它来进行3D计算机图形,图像处理,可视化。VTK包含一个c++类库,众多的翻译接口层,包括Tcl/Tk,Java,Python。Visualization Toolkit 是一个用于可视化应用程序构造与运行的支撑环境,它是在三维函数库OpenGL的基础上采用面向对象的设计方法发展起来的,它将我们在可视化开发过程中会经常遇到的细节屏蔽起来,并将一些常用的算法封装起来。比如 Visualization Toolkit 将我们在表面重建中比较常见的MarchingCubes 算法封装起来,以类的形式给我们以支持,这样我们在对三维规则点阵数据进行表面重建时就不必再重复编写MarchingCubes 算法的代码,而直接使用Visualization Toolkit 中已经提供的vtkMarchingCubes 类。 Visualization Toolkit 是给从事可视化应用程序开发工作的研究人员提供直接的技术支持的一个强大的可视化开发工具。

6.OpenGL-渲染2D、3D矢量图形

OpenGL(英语:Open Graphics Library,译名:开放图形库或者“开放式图形库”)是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。这个接口由近350个不同的函数调用组成,用来绘制从简单的图形比特到复杂的三维景象。而另一种程序接口系统是仅用于Microsoft Windows上的Direct3D。OpenGL常用于CAD、虚拟现实、科学可视化程序和电子游戏开发。

OpenGL的高效实现(利用了图形加速硬件)存在于Windows,部分UNIX平台和Mac OS。这些实现一般由显示设备厂商提供,而且非常依赖于该厂商提供的硬件。开放源代码库Mesa是一个纯基于软件的图形API,它的代码兼容于OpenGL。但是,由于许可证的原因,它只声称是一个“非常相似”的API。

7.OpenCV-计算机视觉和机器学习软件库

OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列C函数和少量C++类构成,同时提供Python、Ruby、MATLAB等语言的接口,实现图像处理和计算机视觉方面的很多通用算法

OpenCV用C++语言编写,它具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS,OpenCV主要倾向于实时视觉应用,并在可用时利用MMX和SSE指令, 如今也提供对于C#、Ch、Ruby,GO的支持。

8.Halcon-机器视觉算法包

HALCON是德国MVtec公司开发的一套完善的标准的机器视觉算法包,拥有应用广泛的机器视觉集成开发环境。它节约了产品成本,缩短了软件开发周期——HALCON灵活的架构便于机器视觉,医学图像和图像分析应用的快速开发。在欧洲以及日本的工业界已经是公认具有最佳效能的Machine Vision软件。

HALCON源自学术界,它有别于市面一般的商用软件包。事实上,这是一套image processing library,由一千多个各自独立的函数,以及底层的数据管理核心构成。其中包含了各类滤波,色彩以及几何,数学转换,形态学计算分析,校正,分类辨识,形状搜寻等等基本的几何以及影像计算功能,由于这些功能大多并非针对特定工作设计的,因此只要用得到图像处理的地方,就可以用HALCON强大的计算 分析能力来完成工作。应用范围几乎没有限制,涵盖医学,遥感探测,监控,到工业上的各类自动化检测。

HALCON支持Windows,Linux和Mac OS X操作环境,它保证了投资的有效性。整个函数库可以用C,C++,C#,Visual basic和Delphi等多种普通编程语言访问。HALCON为大量的图像获取设备提供接口,保证了硬件的独立性。它为百余种工业相机和图像采集卡提供接口,包括GenlCam,GigE和IIDC 1394。

猜你喜欢

转载自blog.csdn.net/Joker00007/article/details/128467873