SPM
参考:SPM12 核磁数据预处理 傻瓜攻略
相关链接:
Matlab_Image_Processing_Toolbox
- SPM12 Download、Instructions on how to install SPM are available on the SPM Wiki.
相关概念:
TR = repetition time. 重复时间。MRI的信号很弱,为提高MR的信噪比,要求重复使用同一种脉冲序列,这个重复激发的间隔时间即称TR。两个激发脉冲的间隔时间即称TR。TR越长,信号越强,当TR很长,远大于t1,这时组织信号强度几乎不受t1的影响,基本剔除了t1效应,得到的将是t2加权或者质子密度成像。
TE = echo time. 恢复时间。
ETL = echo train length, 回波链长度。
FA = flip angle,翻转角。
AV = average,平均次数
TA : 有的厂家叫做平均时长。
FSL
import os
def bet_brain_extraction(input_image, output_image, fractional_threshold=0.5, gradient_threshold=0):
bet_default = '/usr/share/fsl/5.0/bin/bet {} {} -f {} -g {}'.format(
input_image, output_image, fractional_threshold, gradient_threshold
)
os.system(bet_default)
def susan_noise_reduction(input_image, output_image, brightness_threshold=2994.5832031):
susan_default = '/usr/share/fsl/5.0/bin/susan {} {} 3 3 1 0 {}'.format(
input_image, brightness_threshold, output_image
)
os.system(susan_default)
def flirt_linear_registration(input_image, output_image, reference_image, mat):
flirt_default = '/usr/share/fsl/5.0/bin/flirt -in {} -ref {} -out {} -omat {} -bins 256 -cost corratio ' \
'-searchrx -90 90 -searchry -90 90 -searchrz -90 90 -dof 12 -interp trilinear'.format(
input_image, reference_image, output_image, mat
)
os.system(flirt_default)
def is_exists_path(filepath):
if not os.path.exists(filepath):
os.makedirs(filepath)
print('makedirs {} '.format(filepath))
if __name__ == '__main__':
sample_dir = r'/home/captain/Desktop/sample'
inter_output_dir = r'/home/captain/Desktop/sample/Inter_output'
flirt_output_dir = r'/home/captain/Desktop/sample/flirt'
is_exists_path(flirt_output_dir)
for filename in os.listdir(sample_dir):
if 'nii' in filename:
filename_prefix = filename.split('.')[0]
sample_output_dir = os.path.join(inter_output_dir, filename_prefix)
is_exists_path(sample_output_dir)
# BET --- remove skull
bet_input = os.path.join(sample_dir, filename)
bet_output_name = filename_prefix + '_brain'
bet_output = os.path.join(sample_output_dir, bet_output_name)
bet_brain_extraction(bet_input, bet_output)
print('{} -> {}'.format(bet_input, bet_output))
# susan_noise_reduction
susan_input = bet_output
susan_output_name = bet_output_name + '_susan'
susan_output = os.path.join(sample_output_dir, susan_output_name)
susan_noise_reduction(susan_input, susan_output)
print('{} -> {}'.format(susan_input, susan_output))
# flirt
flirt_input = susan_output
flirt_output_name = susan_output_name + '_flirt'
flirt_output = os.path.join(flirt_output_dir, flirt_output_name)
flirt_ref = '/usr/share/fsl/5.0/data/standard/MNI152_T1_2mm_brain' # (91* 109* 91)
flirt_mat = os.path.join(sample_output_dir, flirt_output_name + '.mat')
flirt_linear_registration(flirt_input, flirt_output, flirt_ref, flirt_mat)
print('{} -> {}'.format(flirt_input, flirt_output))
pass
优点:处理速度快,使用方便;配准操作可解决原图像偏移的问题,使得图像居中显示
缺点:颅骨去除效果不佳,存在部分残余颅骨;配准后图像分辨率发生变化 (ex. (128* 128* 90) -> (91* 109* 91))
-> 尝试FreeSurfer、3D slicer颅骨去除效果
扩展阅读:
[医学图像预处理1]使用nibabel和SimpleITK读取处理Nifiti文件(MRI图像);
[3DUNet-MRI图像预处理1]校正偏差域+裁剪patch+归一化;
[3DUNetMRI图像预处理2]综合4个模态+truth和设置的background像素值获取foreground,并裁剪;
重要阅读:关注正电子发射计算机断层显像PET
【ADNI】数据预处理(1)SPM,CAT12;数据集
预处理流程的步骤
1、格式转换:DICOM 是目前神经影像采集重建后存储的通用数据格式,从ADNI数据集中采集到的MRI 和PET 原始图像可能为DICOM 格式。为了得到便于后续操作的数据格式:NIfTI,扩展名为.nii。图像预处理需要使用FSL、SPM 等工具对采集到的图像完成从DICOM 到NIfTI 数据格式的转换。
2、校正:校正步骤操作主要是前连合(AC)-后连合(PC)校正。我们使用MIPAV 软件进行AC–PC 校正, 重采样图像采用标准的256×256×256 模式,之后使用N3 算法去校正非均匀的组织强度。通过AC–PC 校正校正之后的图像,我们还需实施头骨剥离、小脑切除操作。
3、头骨去除和小脑切除:MRI 和PET 的原始图像中都包含着一些非脑结构,比如头骨等。为避免增加运算量,也避免影像后续预处理,影响实验结果,需要在图像预处理操作中将图像中的头骨等非脑结构移除。本文采用SPM 工具中的CAT12 工具包完成去除头骨的操作。
4、异源图像配准:这一预处理操作步用来完成异源影像数据的配准,如:MRI 的T1 回波时间图像和T2 回波时间图像配准、MRI 与PET 配准。由于待配准的图像属于不同类的数据差异很大,所以我们采用更准确、鲁棒的基于互信息的配准算法完成这一操作,最小二乘法已经不再适用。
5、图像分割:在MRI 图像处理时,有时只关注某些特定区域的状态,这就需要根据大脑的解剖结构将目标部位的组织提取出来。在预处理流程中,我们将MRI 按脑灰质、白质、脑脊液结构分割成为3 个不同的图像,再进行单独或联合分析。这是因为这三个组织在大脑中有着不同的功能,在受到AD 或MCI 影响后也有不同的形态学的改变,需要各自提取特征。因此这一步骤需要用到图像分割算法。
6、标准化:标准化是将前面预处理流程的图像配准到标准脑模版空间MNI(Montreal Neurological Institute)上,统一所有图像的坐标空间。MNI 空间是基于大量的正常被试的MRI 扫描平均得到的新的标准脑,是大脑图像标准化常用到的模版。标准化用到的算法是非刚体配准算法,包括仿射变换与非线性变换等。
7、平滑处理:在完成上述一系列处理后,还需要将图像做一次平滑处理,以抑制功能像的噪声,提高信噪比,减少各图像间仍残余的解剖结构或功能上的不同。通常,平滑处理采用的函数是高斯核(标准方差)函数。此外,根据经验和实践尝试,我们使用64×64×64 的像素立方体对灰质密度图像和PET 图像进行下采样,这种处理可以节约运算时间和内存消耗,而且没有损失分类精度。
————————————————
版权声明:本文为CSDN博主「Houchaoqun_XMU」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Houchaoqun_XMU/article/details/79679288
左:MRI 右:fMRI









网友评论