SimpleITK 和 Nibabel 的区别:
SimpleITK 加载数据是channel_first,即(155,240,240);
Nibabel 是 channel_last,即(240,240,155),其中155是图像通道数,也就是155张图像,可以把nii看成二维图像,也可以看成三维。
But nibabel加载出来的图像被旋转了90度,横过来了,不知道什么原因~亟待解决~
- SimpleITK
import SimpleITK as sitk
import skimage.io as io
def read_img(path):
img = sitk.ReadImage(path)
data = sitk.GetArrayFromImage(img)
return data
#显示一个系列图
def show_img(data):
for i in range(data.shape[0]):
io.imshow(data[i,:,:], cmap = 'gray')
print(i)
io.show()
#单张显示
def show_img(ori_img):
io.imshow(ori_img[60], cmap = 'gray')
io.show()
path = 'F:/my_data/t1ce.nii.gz' #数据所在路径
data = read_img(path)
show_img(data)
- Nibabel
import nibabel as nib
import matplotlib.pyplot as plt
def read_data(path):
image_data = nib.load(path).get_data()
return image_data
def show_img(ori_img):
plt.imshow(ori_img[:,:,85], cmap = 'gray') #channel_last
plt.show()
path = 'F:/my_data/t1ce.nii.gz'
data = read_data(path)
show_img(data)
欢迎批斗~~~