背景:之前用ANT保存ima格式的数据,选择的是保存所有的序列
用python将dicom转为nii的格式,
import nibabel as nib
import torch
"""不管是nii还是nii.gz都是二维的,为啥呢"""
fobj = nib.load("nii/NII.nii.gz")
sobj = nib.load("nii/orig/5converted-0.nii.gz")
inp, out = torch.tensor(fobj.get_fdata()), torch.tensor(sobj.get_fdata())
print("dataset1: input = ",type(inp), inp.shape, "output = ", type(out), out.shape)
# dataset1: input = <class 'torch.Tensor'> torch.Size([368, 310]) output = <class 'torch.Tensor'> torch.Size([368, 310])
import pydicom
from nibabel import Nifti1Image
# 读取DICOM文件
dcm_file = 'dicom/IMG-0001-00001.dcm'
ds = pydicom.read_file(dcm_file)
# 获取图像数据
image_data = ds.pixel_array
# 创建NIfTI对象并保存为NIfTI文件
nii1 = Nifti1Image(image_data, None, header=None)
inp= torch.tensor(nii1.get_fdata())
print(inp.shape)
但是显示的是二维的,感觉应该是保存的是每个序列,这样就是个二维的,要一起才行
用ITK打开dicom还是三维的
猜测就是因为保存的时候出的问题