1、加载配准模块(新安装时)
View → extension manager → install extensions → 搜索 registration → 选择 SlicerElastix 安装(凌晨下载快)。
2、导入数据
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
3、配准
-
切换模块: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 模板,可看到各脑区与模板对应上了。
4、提取感兴趣区
-
3Dslicer
中选择另一个模块 Segmentation →Segment Editor
对 atlas 文件操作。 -
Master volume 选 HarvardOxford-cort-maxprob-thr50-2mm, 点
Add
增加图层。扫描二维码关注公众号,回复: 15708253 查看本文章 -
点击 Threshold 图标,
Threshold Range
填写要挑选的脑区,如 30(左上限,右下限都填 30),此时右边所选脑区闪烁,Apply
。 -
保存:SAVE → 选择 Segmentation.seg.nrrd 文件保存。
-
查看:载入
MRIcroGL
,Add Overlay 加入 Segmentation.seg.nrrd。
5、用 Python 挑选脑区
- 配准也可以用 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')