醫療影像數據處理--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")


推薦閱讀:

DR圖像測量心胸比是否有意義?意義有多大?
請問petct和ct平掃出現差異的時候誰更準確?

TAG:医学影像 | 影像科医生 | Python |