FSL软件可以为nii图像去颅骨,但是只能一个个手动拖,这样很麻烦。
利用bash操作可以按批次去颅骨。
#!/bin/bash
# 设置输入和输出目录
input_dir="/home/input"
output_dir="/home/output"
# 遍历输入目录中的所有文件
for file in ${input_dir}/*; do
echo "Processing: ${file}"
# 提取文件名和扩展名
filename=$(basename "$file")
extension="${filename##*.}"
# 检查文件扩展名是否是图像文件(如.nii.gz)
if [[ "$extension" == "gz" ]]; then
# 构建输出文件路径
output_file="${output_dir}/${filename%.nii.gz}_brain.nii.gz"
# 使用bet命令进行脑提取
bet "$file" "$output_file" -R -f 0.5
echo "Finished processing ${filename}"
fi
done
1.将以上代码粘贴到一个新文件中,并将其保存为batch_bet.sh(或者任意其他名称)。
2.在脚本中的input_dir处指定包含输入图像的目录路径。
3.在脚本中的output_dir处指定保存输出图像的目录路径。
4.打开终端,并导航到包含该脚本的目录。
5.运行以下命令,赋予脚本执行权限:
chmod +x batch_bet.sh
6.执行脚本,运行批量脑提取:
./batch_bet.sh
7.成功会显示,
可能存在的bug:
1.没有赋予权限,可以用下面代码做检查。
ls -l batch_bet.sh
2.路径错误。
3.文件后缀名不是gz而是nii
if [[ "$extension" == "nii" ]]; then