一、fslmaths
fslmaths是一个功能非常强大的图像计算器,可以用来执行各种各样的图像处理。
bash
# Usage: fslmaths [-dt <datatype>] <first_input> [operations and inputs] <output> [-odt <datatype>]
-dt 设置用于计算的数据类型(除double图像外,默认为浮点)。
-odt设置输出的数据类型(默认为浮点)。
可设置的数据类型有:char,short,int,float,double,input
"input "就是输入图像是什么数据类型就是什么类型
Binary operations:
-add : 将图像/数值添加到当前图像中
-sub :从当前图像中减去下面的输入图像/数值
-mul : 用当前图像乘以下面的输入图像/数值
-div : 前图像除以下面的输入图像/数值
-rem : 当前图像除以输入图像/数值并取余数
-mas : 用(输入的图像>0)来掩盖当前的图像
-thr : 用下面的数字作为当前图像的阈值(低于该数字的部分为零)。
-thrp : 使用以下ROBUST RANGE的百分比(0-100)对当前图像进行阈值设置(低于该数字的部分为零)
-thrP : 这个P是大写的,use following percentage (0-100) of ROBUST RANGE of non-zero voxels and threshold below
-uthr : 使用以下数字作为当前图像的阈值上限(超过该数字的部分为零)。
-uthrp : 使用以下ROBUST RANGE的百分比(0-100)对当前图像进行上限值处理(高于该数字的部分为零)
-uthrP : 这个P是大写的,use following percentage (0-100) of ROBUST RANGE of non-zero voxels and threshold above
-max : 取以下输入和当前图像的最大值
-min : 取以下输入和当前图像的最小值
-seed : seed random number generator with following number
-restart : replace the current image with input for future processing operations
-save : save the current working image to the input filename
Basic unary operations:
-exp : 指数
-log:自然对数
-sin : 正弦函数
-cos : 余弦函数
-tan : 正切函数
-asin : 正弦弧函数
-acos : 弧形余弦函数
-atan : 弧正切函数
-sqr : 平方
-sqrt:平方根
-recip : 倒数(1/current image)
-abs:绝对值
-bin : 使用(当前图像>0)进行二值化处理
-binv:二值化和反转(二值化和逻辑反转)。
-fillh : 填补二进制遮罩中的孔洞(孔洞是内部的,即不接触FOV的边缘)。
-fillh26:使用26个connectivity来填充孔。
-index : 用一个唯一的索引号替换每个非零体素
-grid : 添加一个强度为的三维网格,网格间距为。
-edge : 边强度
-tfce : 用TFCE增强,例如: -tfce 2 0.5 6 (对于骨架,也可以将6改为26)
-tfceS <tfce_thresh>: show support area for voxel (X,Y,Z)
-nan : 用0替换NaN
-nanm : 对于NaN体素,用0或1替换NaN。
-rand : 添加均匀噪声(范围0:1)
-randn : 添加高斯噪声(mean=0 sigma=1)
-inm : (-i i ip.c) 强度归一化(per 3D volume mean)
-ing : (-I i ip.c) 强度归一化,global 4D mean)
-range : set the output calmin/max to full data range
矩阵操作matrix operations
-tensor_decomp : 将4D(6-timepoint)张量图像转换成L1,2,3,FA,MD,MO,V1,2,3(管道中剩余的图像为FA)
Kernel operations内核操作
(如果需要,在滤波之前设置)。
-3D内核:以目标体素为中心的3x3x3盒子(设置为默认内核)。
-内核2D:以目标体素为中心的3x3x1盒子
-内核box : 以目标体素为中心,宽度为mm的立方体中的所有体素。
-kernel boxv : 以目标体素为中心,宽度为的立方体中的所有体素,注意:尺寸应该是奇数。
-kernel boxv3 : 以目标体素为中心,尺寸为X x Y x Z的立方体中的所有体素,注意:尺寸应该是奇数。
-kernel gauss :高斯核(sigma单位是毫米,而不是体素)。
-kernel sphere : 以目标体素为中心,半径为mm的球体中的所有体素。
-内核文件<文件名>:使用外部文件作为内核
Spatial Filtering operations空间滤波操作
注意:除了-s之外,所有选项都使用默认内核或之前由-kernel指定的内核。
-dilM : 非零体素的平均Dilation
-dilD : 非零体素的模态Dilation
-dilF : 对所有体素进行最大过滤
-dilall : 反复应用-dilM,直到覆盖整个FOV。
-ero:当内核中发现零体素时,通过将非零体素清零来进行侵蚀
-eroF:对所有体素进行最小化过滤
-fmedian : 中位数滤波
-fmean : 平均值过滤,内核加权(通常与高斯内核一起使用)
-fmeanu : 平均值滤波,内核加权,未归一化(给出edge effects)。
-s : 创建一个sigma mm的高斯核并进行平均滤波。
-subsamp2 : downsamples image by a factor of 2 (keeping new voxels centred on old)
-subsamp2offc:downsamples image by a factor of 2 (non-centred)
降维操作Dimensionality reduction operations
("T "可以用X、Y或Z代替,以便在不同维度上进行折叠)
-Tmean:跨时间的平均值
-Tstd:跨时间的标准偏差
-Tmax:跨时间的最大值
-Tmaxn:跨时间的最大值的时间指数
-Tmin:跨时间的最小值
-Tmedian : 各个时间段的中位数
-Tperc <百分比> : 全范围的第n个百分点(0-100)。
-Tar1 : temporal AR(1) coefficient (use -odt float and probably demean first)
基本统计操作Basic statistical operations
-pval : 非参数未校正的P值统计图像
-pval0 : 与-pval相同,但将零作为缺失数据。
-cpval : 与-pval相同,但给出了FWE修正的P值
-ztop : 将Z值图转换为(未校正的)P值图
-ptoz : 将(未校正的)P值图转换为Z值图
-rank : Convert data to ranks (over T dim)
-ranknorm:Transform to Normal dist via ranks
bash
#example 1
fslmaths inputVolume -add inputVolume2 output_volume
#example 2
fslmaths inputVolume -add 2.5 output_volume
#example 3
fslmaths inputVolume -add 2.5 -mul inputVolume2 output_volume
#example 4
fslmaths 4D_inputVolume -Tmean -mul -1 -add 4D_inputVolume demeaned_4D_inputVolume
二、fslstats
fslstats是一个用于计算各种数值的通用工具
bash
> # Usage:
> fslstats [-t] <input> [options]`
-t 将计算4D图像的每个3D volume的值,每个volume是一行
-k < indexMask > 指定mask, 将从indexMask中生成单独的n个子任务,用于索引值1...n,其中n是indexMask中的最大索引值,并为每个子任务生成统计数据。比如某个atlas有10个分区,那么就会输出每个分区的统计值
-l : 设置较低的阈值
-u : 设置上限阈值
-r : 输出 <robust最小强度> <robust最大强度>。
-R : 输出<最小强度><最大强度>。
-E : 输出平均熵;mean(-i*ln(i))
-E : 输出平均熵(非零体素的)。
-v : 输出<体素><体积>。
-V : 输出<体素> <体积> (非零体素)
-m : 输出平均数
-M : 输出平均值(对于非零的体素)
-s : 输出标准差
-S : 输出标准差(对于非零的体素)。
-w : 输出最小的ROI 包含非零体素的ROI。
-x : 输出最大体素的坐标
-X : 输出最小体素的坐标
-c:输出centre-of-gravity(cog),以毫米为坐标。
-C : 输出以体素坐标表示的cog。
-p : 输出第n个百分位数(n在0和100之间)。
-P : 输出第n个百分位数(对非零体素)。
-a : 使用所有图像强度的绝对值
-n : 将NaN或Inf替换为0
-k : 使用指定的图像(文件名)进行遮蔽 - 覆盖下限和上限阈值
-d : 取基本图像和这里指定的图像之间的差值
-h : 输出一个带有nbins的直方图(只针对经过阈值/mask内的体素)。
-H : 输出一个直方图(只针对经过阈值/mask内的体素),有nbins和直方图的min和max限制。
bash
#example 1
fslstats tfce_corrp_image.nii.gz -R
#example 2
fslstats highres -m -M
三、fslmeants
fslmeants 可以输出ROI mask内参数的平均值
平均值取自mask内的所有体素,如果没有指定mask,则计算图像中的所有体素。
bash
#Usage: fslmeants -i <filename> input 4D image
#example 1
fslmeants -i filtered_func_data -o meants.txt -m my_mask
# example 2
fslmeants -i filtered_func_data -m my_mask # input 3D mask
# example 3
fslmeants -i filtered_func_data -c 24 19 10
#可选参数(你可以选择性地指定一个或多个):
-o <filename> 输出txt文件的名字
-m <filename> 输入3D mask
-c <x y z> 坐标值
--usemm 使用mm而不是体素坐标(针对-c选项)
--showall 显示mask内所有体素的参数值
--eig 计算特征变量而不是平均值(输出的平均值为0)。
--order 选择Eigenvariates的数量(默认为1)
--no_bin 在计算特征变量时不对mask进行二值化处理
--label 输入3D label图像(为每个整数label值生成单独的平均值 - 不能与showall一起使用)。
--transpose 以转置格式输出结果(每个体素/平均数为一行)。
-v,--诊断信息
-h,--帮助
-w 输出加权平均值,使用mask的值作为权重,然后退出。
例如从4D骨架图像中获取ROI平均值可以用以下命令
bash
#fslmeants
fslmeants -i all_FA_skeletonised.nii.gz -m roimask -o meants_roi
#fslstats
fslstats -t all_FA_skeletonised.nii.gz -k roimask -M -V > meants2_roi
参考链接
https://lixiangcx.wordpress.com/2018/07/23/basic-fsl-image-calculation-commands/
csdn博主