码迷,mamicode.com
首页 > 其他好文 > 详细

医学影像预处理之标注

时间:2021-07-05 18:51:01      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:平台   oca   相同   pre   通过   iba   mamicode   处理   推荐   

标注工具

标注工具推荐使用ITK-SNAP,windows、linux和MacOS平台都支持。

标注的读取

通过ITK-SNAP加载数据和label文件,我们可以看到用不同颜色区分的标注,如下图:

技术图片

图中有两个label,分别为Label1和Label2,对应图中红色和绿色部分。
下面我们用程序读取label文件,看看具体的数据结构是怎样的。

import numpy as np
import SimpleITK as sitk

label_path = "./hippocampus_001_label.nii.gz"

if __name__ == "__main__":

    img_itk = sitk.ReadImage(label_path)
    img_npy = sitk.GetArrayFromImage(seg_itk)
    print("=======label shape=======")
    print(img_npy.shape)
    print("=======label value=======")
    print(img_npy[img_npy != 0])

结果如下:

=======label shape=======
(35, 51, 35)
=======label value=======
[1 1 1 ... 2 2 2]

程序中我们首先通过itk读取图像,并转换为numpy数组,之后打印了数组的shape,以及数组中不为0的其余的数值,从以上结果我们可以看到,标注部分的具体的数值等于Label的数值。

标注的修改

有时我们会涉及到对Label的修改,比如我们想将Label1删除,将Label2的Value改为1。代码如下:

img_npy[img_npy == 1] = 0
img_npy[img_npy == 2] = 1
img_itk = sitk.GetImageFromArray(img_npy)
sitk.WriteImage(img_itk, label_path)
print("=======changed label value=======")
print(img_npy[img_npy != 0])

结果如下:

=======label value=======
[1 1 1 ... 1 1 1]

我们用ITK-SNAP加载修改后的图像,如下图,与本文第一张图对比,可以看到标注部分已经修改成功。

技术图片

其它实现方式

采用nibabel代替SimpleITK的另一种实现Label读取和修改的方式,也能完成相同的工作。

# encoding = utf-8

import nibabel as nib
import numpy as np

label_path = "./hippocampus_001_label.nii.gz"

if __name__ == "__main__":

    img_nib = nib.load(label_path)
    img_npy = img_nib.get_fdata()
    print("=======label shape=======")
    print(img_npy.shape)
    print("=======label value=======")
    print(img_npy[img_npy != 0])

    img_npy[img_npy == 1] = 0
    img_npy[img_npy == 2] = 1
    
    nib.save(nib.Nifti1Image(img_npy.astype(‘uint8‘), affine=img_nib.affine), label_path)
    print("=======changed label value=======")
    print(img_npy[img_npy != 0])

医学影像预处理之标注

标签:平台   oca   相同   pre   通过   iba   mamicode   处理   推荐   

原文地址:https://www.cnblogs.com/tomyoung/p/14967368.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!