[Python教程] Python SimpleITK软件包常用参数与使用方法分析

目前在使用深度学习进行医学图像处理,主要进行肺部结节检测,在预处理时经常会使用到SimpleITK软件包,它是一个很好用的读取医学图像信息软件包。

内容列表

    • SimpleITK
        • 1. SimpleITK.ReadImage(path)
        • 2. SimpleITK.GetArrayFromImage(itk_img)
        • 3. itk_img.GetOrigin()
        • 4. itk_img.GetSpacing()
        • 5. itk_img.GetDirection()
        • 6. 具体分析一下Origin与Spacing:

SimpleITK

Insight Segmentation and Registration Toolkit (ITK)是一个开源、跨平台的框架,可以提供给开发者增强功能的图像分析和处理套件。其中最为著名的就是SimpleITK,是一个简化版的、构建于ITK最顶层的模块。SimpleITK旨在易化图像处理流程和方法。

目前常用的代码有如下几种:

    itk_img = SimpleITK.ReadImage(path)
    img_array = SimpleITK.GetArrayFromImage(itk_img)
    print("Img array: ", img_array.shape)               #读取图像大小

    origin = numpy.array(itk_img.GetOrigin())           #读取图像原点坐标
    print("Origin (x,y,z): ", origin)

    direction = numpy.array(itk_img.GetDirection())     #读取图像方向
    print("Direction: ", direction)

    spacing = numpy.array(itk_img.GetSpacing())         # 读取图像尺度信息
    print("Spacing (x,y,z): ", spacing)

下面分别分析一下上面用到的几个信息:

1. SimpleITK.ReadImage(path)

最简单的在path中读取图像信息,一般读取格式为mhd文件与dicom文件

2. SimpleITK.GetArrayFromImage(itk_img)

将读取出来的图像信息用像素值表示出来
[Python教程] Python SimpleITK软件包常用参数与使用方法分析_第1张图片
如上为读取出来的数组,底下的shape就是整个读取出来的图像大小,如此图为长宽分别为512,深度为109的图像。

3. itk_img.GetOrigin()

此操作为读取图像的原点信息,因为每张图像的不同,它的位置也与原点的距离不同,如此图:
[Python教程] Python SimpleITK软件包常用参数与使用方法分析_第2张图片

4. itk_img.GetSpacing()

此操作为读取图像的体素大小,我觉得这个数值更像尺度一些,每张图都不同
[Python教程] Python SimpleITK软件包常用参数与使用方法分析_第3张图片
本图z的尺度为2.5,意思就是每1mm显示为2.5个深度。

5. itk_img.GetDirection()

此操作为读取图像方向,一般一系列图像都是同样的:
[1., 0., 0.,
0., 1., 0.,
0., 0., 1.]

6. 具体分析一下Origin与Spacing:

[Python教程] Python SimpleITK软件包常用参数与使用方法分析_第4张图片
[Python教程] Python SimpleITK软件包常用参数与使用方法分析_第5张图片
上面两图很好的诠释了Origin与Spacing与图像的关系

以上都是我本人的见解,如果有出错的地方,欢迎讨论!

你可能感兴趣的:(Python教程)