医疗影像dcm文件转nii并展示

原始医疗影像文件:
在这里插入图片描述

DCM图像转nii格式:

在这里需要用到一个开源工具:dcm2niix 直接从release中可以下载编译好的exe文件。

windows需要在cmd下执行exe文件(不能直接打开,在命令行下运行),将会打印出所有的参数:
在这里插入图片描述
在这里我们将某个文件夹下的图像文件进行转换:
在这里插入图片描述
将会在output目录下生成一个nii的文件和图像的描述json:
在这里插入图片描述

python加载nii图像数据并MPR展示:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import matplotlib
 
from matplotlib import pylab as plt
import nibabel as nib
from nibabel import nifti1
from nibabel.viewers import OrthoSlicer3D
 
# matplotlib.use('TkAgg')

# 文件名,nii或nii.gz
example_filename = 'LGG71_Flair.nii'

img = nib.load(example_filename)

# 打印文件信息
print(img)
print(img.dataobj.shape)

#shape不一定只有三个参数,打印出来看一下
width, height, queue = img.dataobj.shape

# 显示3D图像
OrthoSlicer3D(img.dataobj).show()

#计算看需要多少个位置来放切片图
x = int((queue/10) ** 0.5) + 1
num = 1
# 按照10的步长,切片,显示2D图像
for i in range(0, queue, 10): 
    img_arr = img.dataobj[:, :, i]
    plt.subplot(x, x, num)
    plt.imshow(img_arr, cmap='gray')
    num += 1

plt.show()

# 展示每一张图像
for i in range(0, queue, 1): 
    img_arr = img.dataobj[:, :, i]
    plt.imshow(img_arr, cmap='gray')
    plt.show()

这是对于原始图像的展示,其shape格式为:

(137,163,138) 分别为图像宽度,高度,和索引值(即第几张)

但是对于模型预测后的分割图,其通常来说是多通道的,如:

(137, 163, 138, 1, 2)

在这里就需要对上述代码进行修改:

#采用5个参数来接收shape
width, height, queue,p1,p2 = img.dataobj.shape


#图像采用imshow的时候需要指定通道的numpy数据:
img_arr = img.dataobj[:, :, i,0,0]
#或
img_arr = img.dataobj[:, :, i,0,1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值