Python中的医学图像处理
项目描述
医学派
MedPy是 Python 中用于医学图像处理的库和脚本集合,为读取、写入和操作任意维度的大图像提供基本功能。它的主要贡献是流行图像过滤器的 n 维版本、图像特征提取器的集合,可与scikit-learn一起使用,以及详尽的 n 维图形切割包。
安装
sudo apt-get install libboost-python-dev build-essential
pip3 install medpy
MedPy需要Python 3并正式支持 Ubuntu 以及其他 Debian 衍生产品。有关其他操作系统的安装说明,请参阅文档。虽然库本身纯粹是用 Python 编写的,但graph-cut扩展是用 C++ 编写的,并且有自己的要求。更多细节可以在文档中找到。
使用 Python 2
不再支持Python 2 。但是您仍然可以使用旧版本。
pip install medpy==0.3.0
开始使用图书馆
如果您已经有格式支持的医学图像(请参阅文档了解详细信息),那就太好了。否则,导航到http://www.nitrc.org/projects/inia19,单击立即下载按钮,解压缩并查找inia19-t1.nii文件。在您最喜欢的医学图像查看器(我个人喜欢itksnap)中打开它并注意:INIA19 灵长类动物大脑图谱。
加载图像
from medpy.io import load
image_data, image_header = load('/path/to/image.xxx')
数据存储在一个 numpy ndarray 中,标头是一个包含附加元数据的对象,例如体素间距。现在让我们看看一些图像元数据
image_data.shape
(168, 206, 128)
image_data.dtype
dtype(float32)
标题给了我们
image_header.get_voxel_spacing()
(0.5, 0.5, 0.5)
image_header.get_offset()
(0.0, 0.0, 0.0)
现在让我们应用MedPy过滤器之一,更准确地说是Otsu 阈值,可用于自动背景去除
from medpy.filter import otsu
threshold = otsu(image_data)
output_data = image_data > threshold
并保存二值图像,标记前景
from medpy.io import save
save(output_data, '/path/to/otsu.xxx', image_header)
看完之后,您可能想深入了解文档中的教程。
开始使用脚本
MedPy带有一系列即读即用的命令行脚本,它们都以medpy_. 要尝试这些示例,请首先获取上一节中描述的图像。现在打电话
medpy_info.py /path/to/image.xxx
将为您提供有关图像的一些详细信息。和
medpy_diff.py /path/to/image1.xxx /path/to/image2.xxx
你可以比较两个图像。和
medpy_anisotropic_diffusion.py /path/to/image.xxx /path/to/output.xxx
允许您应用边缘保持各向异性扩散过滤器。有关所有脚本的列表,请参阅文档。
对医学图像格式的读/写支持
MedPy 依赖于 SimpleITK,它支持 ITK 的强大功能来加载和保存图像。支持的图像文件格式至少应包括以下内容。请注意,您的机器可能不支持所有功能。
医疗形式:
- ITK MetaImage (.mha/.raw, .mhd)
- 神经影像信息学技术倡议 (NIfTI) (.nia, .nii, .nii.gz, .hdr, .img, .img.gz)
- 分析 (plain, SPM99, SPM2) (.hdr/.img, .img.gz)
- 医学数字成像和通信 (DICOM) (.dcm, .dicom)
- 医学数字成像和通信 (DICOM) 系列 (<目录>/)
- 近乎原始的栅格数据 (Nrrd) (.nrrd, .nhdr)
- 医学影像 NetCDF (MINC) (.mnc, .MNC)
- 伙计们图像处理实验室 (GIPL) (.gipl, .gipl.gz)
显微镜格式:
- 医学研究委员会 (MRC) (.mrc, .rec)
- Bio-Rad (.pic, .PIC)
- LSM(蔡司)显微镜图像(.tif、.TIF、.tiff、.TIFF、.lsm、.LSM)
- 刺激/信号数据 (SDT) (.sdt)
可视化格式:
- VTK 图像 (.vtk)
其他格式:
- 便携式网络图形 (PNG) (.png, .PNG)
- 联合图像专家组 (JPEG)(.jpg、.JPG、.jpeg、.JPEG)
- 标记图像文件格式 (TIFF)(.tif、.TIF、.tiff、.TIFF)
- Windows 位图(.bmp、.BMP)
- 分层数据格式 (HDF5) (.h5 , .hdf5 , .he5)
- MSX-DOS 屏幕-x (.ge4, .ge5)
要求
MedPy 带有许多依赖项和可选功能,可能需要您安装其他软件包。
主要依赖
可选功能
- 编译
max-flow/min-cut(启用 GraphCut 功能)
执照
MedPy 是根据 GNU 通用公共许可证分发的,其版本可以在 LICENSE.txt 文件中找到。