zoukankan      html  css  js  c++  java
  • nii文件在python中的使用

    NIFTI格式图像

    NIFTI(Neuroimaging Informatics Technology Initiative)格式图像是由一个包含头文件元数据和一个包含二进制的图像资料组成的文件。

    读取NIFTI格式图像可以通过软件ITK-SNAP打开

    image-20200913223011437

    可以看到:ITK-SNAP获得了分别来自三个角度的视图(水平面、矢状面、冠状面)

    Inked20190829115918569_LI

    使用Python读取

    2.1 simpleITK

    import SimpleITK as sitk
    from matplotlib import pyplot as plt
    
    
    def showNii(img):
        for i in range(img.shape[0]):
            plt.imshow(img[i, :, :], cmap='gray')
            plt.show()
    
    
    itk_img = sitk.ReadImage('./new_coronary.nii.gz')
    img = sitk.GetArrayFromImage(itk_img)
    print(img.shape)  # (155, 240, 240) 表示各个维度的切片数量
    showNii(img)
    

    可以看到文件中包含的图像信息

    image-20200913232921264

    2.2 Nibabel

    import matplotlib
    matplotlib.use('TkAgg')
     
    from matplotlib import pylab as plt
    import nibabel as nib
    from nibabel import nifti1
    from nibabel.viewers import OrthoSlicer3D
     
    example_filename = './Brats18_2013_2_1_flair.nii.gz'
     
    img = nib.load(example_filename)
    print (img)
    print (img.header['db_name'])   # 输出头信息
    
    # 由文件本身维度确定,可能是3维,也可能是4维 
    width,height,queue=img.dataobj.shape
     
    OrthoSlicer3D(img.dataobj).show()
     
    num = 1
    for i in range(0,queue,10):
     
        img_arr = img.dataobj[:,:,i]
        plt.subplot(5,4,num)
        plt.imshow(img_arr,cmap='gray')
        num +=1
     
    plt.show()
    

    也可看到文件中的图像

    image-20200913233119230

    操作与ITK-SNAP软件类似

  • 相关阅读:
    🔨FFmpeg 转换至 MP4 视频格式
    🔨Ubuntu Linux '门' '复' 显示不标准
    🔨Youtube-dl 开代理搭配 Aria2 多线程加速下载
    📔 如何用英语的思维来思考 How to THINK in English
    🚀 sublime 加速软件下载
    🚀 snap 代理
    🚀 Chocolatey 代理
    🔨 Deepin V20 软件及遇到的问题
    💿 npm 换源 (转载)
    🔨FFmpeg 合并视频
  • 原文地址:https://www.cnblogs.com/feyily/p/13748608.html
Copyright © 2011-2022 走看看