- 1、加载配准模块(新安装时)
- 2、导入数据
- 3、配准
- 4、提取感兴趣区
- 5、用 Python 挑选脑区
- 软件:3D slicer 不好用,但支持 Windows。(好用的软件只支持 Linux 或 MacOS,如 FSL,配准效果更好,且是文章中用到的主流软件)
View → extension manager → install extensions → 搜索 registration → 选择 SlicerElastix 安装(凌晨下载快)。
DATA → Choose Files to Add → 选择文件(如图) → 勾选 Show Options,对 atlas 模板文件勾选 Labal Map,Centered 也都勾上,否则对不准。
◆ atlas 模板:HarvardOxford-cort-maxprob-thr50-2mm.nii
◆ 标准图像:mni152.nii.gz,与 atlas 模板相匹配
◆ 个体影像:BraTS19_TCIA10_106_1_t1.nii.gz
-
切换模块:Welcome to Slicer → Registration → General Registration (Elastix)
-
设置参数:
Fixed volume: MNI152(标准文件)
Moving volume: BraTS19_TCIA10_106_1_t1 (个体影像文件)
Output volume: BraTS19_TCIA10_106_1_t1(个体影像文件)
-
Apply 开始配准,配准完成后,右侧图像显示个体图像和标准图像匹配成功。
-
保存配准文件:SAVE → 只保存配准后的个体文件(修改文件名,后加_reg)
-
查看配准文件:将配准后的个体文件载入 MRIcroGL,Add Overlay 加入 atlas 模板,可看到各脑区与模板对应上了。
-
3Dslicer 中选择另一个模块 Segmentation → Segment Editor 对 atlas 文件操作。
-
Master volume 选 HarvardOxford-cort-maxprob-thr50-2mm, 点 Add 增加图层。
-
点击 Threshold 图标,Threshold Range 填写要挑选的脑区,如 30(左上限,右下限都填 30),此时右边所选脑区闪烁,Apply。
-
保存:SAVE → 选择 Segmentation.seg.nrrd 文件保存。
-
查看:载入 MRIcroGL,Add Overlay 加入 Segmentation.seg.nrrd。
- 配准也可以用 python 实现,但需要在 linux 或 Mac 系统实现。
import SimpleITK as sitk maskFilePath = 'C:/Users/HUAWEI/Desktop/file3/HarvardOxford-cort-maxprob-thr50-2mm.nii' reader = sitk.ImageFileReader() reader.SetFileName(maskFilePath) mask = reader.Execute() size = mask.GetSize() # order: x, y,z 像素点的个数 origin = mask.GetOrigin() # order: x, y,z spacing = mask.GetSpacing() # order:x, y,z direction = mask.GetDirection() # order: x,y,z maskArr = sitk.GetArrayFromImage(mask) # order:z,y,x 从影响上得到矩阵(顺序与其他不一样) maskArr_new = maskArr maskArr_new[maskArr != 31] = 0 maskArr_new[maskArr == 31] = 1 # 只显示 31 脑区 # 提取新 mask 的矩阵 mask_new = sitk.GetImageFromArray(maskArr_new) # 设置新 mask 的参数 mask_new.SetDirection(direction) mask_new.SetSpacing(spacing) mask_new.SetOrigin(origin) # 保存 mask 文件 sitk.WriteImage(mask_new, 'C:/Users/HUAWEI/Desktop/file3/mask_new.nii.gz')



