影像数据(CT & MRI)处理万能包使用指南--FSLutils宝典

文章目录


之前介绍过 Fslutils 是一组有用的命令行实用程序,可对 Nifti 格式数据集进行查看,转换、处理等。

注意:fsl 是没有 Fslutils 这个命令的。只是把实现各种功能的小命令统称为 Fslutils。

那,Fslutils 到底包含哪些实用功能呢?今天给大家介绍几个我经常用到命令。
影像数据(CT & MRI)处理万能包使用指南--FSLutils宝典

fslinfo - 查看图像头文件信息

fslinfo 可以知道数据的类型,大小,分辨率等信息。非常方便快捷。

使用方法

fslinfo xxxx.nii.gz

影像数据(CT & MRI)处理万能包使用指南--FSLutils宝典
比如,示例图像的数据类型为 float32, 大小为 4x240x240x155, xyz三个方向的分辨率均为 1mm

fslmaths - 对图像进行数学处理

简单但功能强大的程序,允许对图像进行数学处理。包括加减乘除,空间和时间滤波、统计转换(例如 z to p-values)、扩散张量分解和 TFCE 计算等一系列操作。

如何使用?终端键入fslmaths就可以查看使用说明
影像数据(CT & MRI)处理万能包使用指南--FSLutils宝典
可能有些小伙伴对终端命令的使用不太熟,我这里简单介绍一下如何看懂这个说明。

首先,图片中数字 1 那一行是最重要的说明

Usage: fslmaths [-dt <datatype>] <first_input> [operations and inputs] <output> [-odt <datatype>]

[]中括里面的参数表示可选参数,<>表示必须参数。
所以这个说明: fslmaths 必须要有first_input output,其余都是可选参数,并且要注意每个可选参数的位置信息,比如 -dt datatype 这个数据类型参数如果要添加的话,应该放在first_input前面。

我这里只是截图的一部分,实际上可用的参数非常多,每个参数具体怎么用,可以查看参数后面的解释。

分享一个有趣的例子,如何把一张 MR 图像,变成一张猴脸
影像数据(CT & MRI)处理万能包使用指南--FSLutils宝典
img0 首先加20,再乘以img1,减去img2就得到了猴脸

案例来自:B站慧脑云|脑影像分析的实用小工具(FSL篇)

在这里,介绍几个比较常用的参数。

  1. -add -sub -mul -div
    对图像执行加减乘除,这是最简单且最常用的命令。就如同上述变猴脸的案例,主要用到的就是加减乘除。
  2. -thr -uthr 使用阈值处理图像

image > thr 的部分保留,小于阈值的部分为0。
image > uthr 的部分为0, 小于阈值的部分保留。
可见,两个参数刚好是执行相反的命令。

fslmaths BRATS_489.nii.gz -thr 200 brats_489_thr.nii.gz

这里没有实际意义,只是简单举个例子。

  1. -bin 二值化图像,image > 0 的部分都为1。这个功能非常好用。加入原本有一个多类分割的标签图像,值为0,1,2,3,4等等,想把它转成两类分割,就可以使用这个工具。
fslmaths BraTS19_2013_2_1_seg.nii.gz -bin BraTS19_2013_2_1_seg_bin.nii.gz

影像数据(CT & MRI)处理万能包使用指南--FSLutils宝典

影像数据(CT & MRI)处理万能包使用指南--FSLutils宝典

fslslice - 将 3D 文件拆分为许多 2D 文件(沿 z 轴)

fslslice BraTS19_TMC_06643_1_t1.nii.gz BraTS19_TMC_06643_1_t1

影像数据(CT & MRI)处理万能包使用指南--FSLutils宝典
假设相对比使用 3D 图像训练和 2D 图像训练的区别,那就可以用 fslslice 把 3D 图像拆成 2D 的。算法会自动在名字后面加一个slice

fslsplit - 将 4D 文件拆分为许多 3D 文件

MRI 图像有些合并了多个序列,是一个 4D 图像,想要得到一个序列一个 3D 图像,就可以使用这个功能。

fslsplit BRATS_489.nii.gz brats_498_

影像数据(CT & MRI)处理万能包使用指南--FSLutils宝典

fslmerge 将多个 3D 合并成一个 4D 图像

有时又需要把多个序列合并在一起

fslmerge -n 0 BRATS_489_merge.nii.gz brats_498_0000.nii.gz brats_498_0001.nii.gz brats_498_0002.nii.gz brats_498_0003.nii.gz

-n = 0 表示在第 0 个维度合并图像。

fslroi 提取感兴趣区

fslroi <input> <output> <xmin> <xsize> <ymin> <ysize> <zmin> <zsize>

感兴趣的提取是需要人为指定每个方向的起点,和大小。而不是起点和终点。提取包含 10 到 12 的体素,您需要指定 10 和 3(而不是 10 和 12)。

fslroi BraTS19_TMC_06643_1_t1.nii.gz BraTS19_TMC_06643_1_t1_roi.nii.gz 60 40 60 40 50 40
fslinfo BraTS19_TMC_06643_1_t1_roi.nii.gz

影像数据(CT & MRI)处理万能包使用指南--FSLutils宝典

如果你不是做精神影像,那么这些功能足以应对普通需求啦。
影像数据(CT & MRI)处理万能包使用指南--FSLutils宝典

如果还想学习更多,欢迎访问 fslutils官网

上一篇:【ParaView教程】第四章 常见问题 —— 2D速度矢量怎样在ParaView中绘制流线?


下一篇:WPF 3D穿梭效果,用WPF也凑凑热闹