醫療影像數據處理--python處理nifti數據
簡單介紹:
dicom
dicom是由磁共振設備掃描產生的,一般是一個slice一個文件,
分析格式: .img/.hdr
nifti
由fsl afni spm 共同確定的格式,支持3D,4D影響
分析格式: img/hdr
dicom -----> nifti 影像處理流程
1,利用spm將dicom原始數據轉換為 分析格式:*.img 和*.hdr
2,利用dcm2nifti工具將dicom數據轉為nifti 3d數據
3,利用spm進行3d轉為4d
<翠花上酸菜>:
處理nifti數據的工具很多,matlabITKVTKpython.
我們使用python處理該類型的數據
開發工具
1,語言python2.7
2,python module: nipy scipy nibabel matplotlib
第一彈: 獲取數據形態信息及頭信息
#-*- coding=utf8 -*-
import nibabel as nib
#import os
#from nibabel.testing import data_path
#d_path= os.path.join(data_path,"1.nii")
#data1= nib.load(d_path)
data1= nib.load("1.nii")
#數據形狀
print data1.shape
print data1.affine.shape
img = data1.get_data()
#數據形狀,矩陣數據每一維的數據尺寸
print img.shape
#數據頭信息
print data1.header
第二彈:獲取slice信息生成圖像
#-*- coding=utf8 -*-
import nibabel as nib
import matplotlib.pyplot as plt
#把slice數據生成圖片的方法
def show_img(slices):
fig, axes = plt.subplots(1, len(slices))
for i, slice in enumerate(slices):
axes[i].imshow(slice.T, cmap="gray", origin="lower")
#讀取nifti文件中的slice數據
data1= nib.load("/home/lee/nifti/1.nii.gz")
img = data1.get_data()
#獲取單張slice數據
slice_0 = img[26, :, :]
slice_1 = img[:, 30, :]
slice_2 = img[:, :, 16]
#生成圖表
show_img([slice_0, slice_1, slice_2])
plt.suptitle("show slice image")
推薦閱讀: