zoukankan      html  css  js  c++  java
  • 将nii文件CT图像更改窗宽窗位之后保存成nii文件

    因为项目需要把CT图像中骨头更加明确的显示出来,且还需要保存nii文件,所以查了一些资料,在这里做一下笔记,方便以后使用。代码如下:

    import nibabel as nib
    import numpy as np
    import SimpleITK as sitk
    center = 350  # 窗位
    width = 1200  # 窗宽
    
    filename = 'E:/个人/骨折检测/分割项目/HDC-Net-master/mydata/RibFrac1-image.nii.gz'
    img = nib.load(filename)
    img_fdata = img.get_fdata()
    
    min = (2 * center - width) / 2.0 + 0.5
    max = (2 * center + width) / 2.0 + 0.5
          
    dFactor = 255.0 / (max - min)
    
    img_fdata[img_fdata<min] = min
    img_fdata[img_fdata>max] = max
    # 进行转置,因为需要按照原来的方向进行保存
    data = np.transpose(img_fdata, [2, 1, 0])
    (z, y, x) = data.shape
    print(z," ",y," ",x)
    for i in range(z):
        for j in range(x):
            for k in range(y):
                value = data[i,j,k]
                if value <= min:
                    value = 0
                elif value < max:
                    value = (value - min) / width * 255
                elif value >= max:
                    value = 255
                else:
                    data[i,j,k] = value 
    #进行保存
    print("-----------------")
    filesname = "RibFrac1.nii.gz"            
    img = sitk.GetImageFromArray(data)
    sitk.WriteImage(img, filesname)
    print("+++++++++++++++++")
  • 相关阅读:
    位或( | )
    学习进度笔记7
    学习进度笔记6
    学习进度笔记5
    学习进度笔记4
    学习进度笔记3
    学习进度笔记2
    学习进度笔记1
    周总结13
    《黑客与画家》阅读笔记6
  • 原文地址:https://www.cnblogs.com/peixu/p/13493685.html
Copyright © 2011-2022 走看看