目录
一、说明
1、在anaconda环境下通过Nipype包使用FSL软件中的BET算法来实现颅骨去除。
2、需要在linux系统中运行。
二、环境搭建
1、先在自己的conda环境中安装Nipype包
pip install nipype
2、不能只安装Nipype包,还要安装和启动FSL软件
不然会在运行代码时出现如下报错:
OSError: No command “bet” found on host xxx. Please check that the corresponding package is installed.
原因:Nipype只是平台,要使用BET算法还需要安装FSL软件库。
①下载FSL
链接:https://fsl.fmrib.ox.ac.uk/fsldownloads
在Software Licensing中点开FSL software License,点agree;
在About Yourself中填写自己的信息;
在About Your computer OS中选择自己的操作系统;
点Register转到下载页面;
点击Download FSL x.x.x.x下载fslinstaller.py文件。
②安装FSL
不用用图形界面,用命令行模式或者用Xshell远程连接,然后安装,否则下载FSL包时会报错!
进入root用户,cd到fslinstaller.py文件所在目录;
在终端运行python fslinstaller.py
点击回车开始自动下载FSL包并自动安装,默认安装路径为/usr/local/。安装过程有stage1和stage2,时间较长。
③配置环境
安装完成后提示安装libpng12和libmng:(如果没提示,则无需安装)
在终端输入yum install libpng12 libmng进行安装
完成后输入vim ~/.bash_profile配置环境变量
点击“i”进入编辑模式,在文件最后加入以下代码:
# FSL
FSLDIR=/usr/local/fsl
. ${FSLDIR}/etc/fslconf/fsl.sh
PATH=${FSLDIR}/bin:${PATH}
export FSLDIR PATH
输入后点击"esc",然后输入“:wq”退出vim
最后运行source ~/.bash_profile更新环境变量
④让所有用户都能使用FSL
ubuntu:添加环境变量到/etc/bash.bashrc末尾
centos :添加环境变量到/etc/bashrc末尾
用vim打开后输入如下代码并保存:
export FSLDIR=/usr/local/fsl
export PATH=$PATH:$FSLDIR/bin
source $FSLDIR/etc/fslconf/fsl.sh
重启后,其他用户就可以在anaconda的虚拟环境中调用FSL的BET算法了。
⑤启动FSL
在终端任意路径输入 fsl 即可打开软件,如下图。
如果打不开,提示“没有command”,再确认一下是否已重启,libpng12和libmng是否已安装。
⑥运行去颅骨代码
下面是针对单个nii文件的示例:
import os
import SimpleITK as sitk
from nipype.interfaces import fsl
btr = fsl.BET()
fsl.FSLCommand.set_default_output_type('NIFTI')
btr.inputs.frac = 0.05 # Fractional intensity threshold; smaller values give larger brain outline estimates
btr.inputs.in_file = 'Normal006-MRA.nii'
btr.inputs.out_file = 'Normal006-MRA-new.nii'
btr.run()
参考
https://github.com/nipy/nipype/issues/2266
https://blog.csdn.net/sinat_35907936/article/details/112969857
https://blog.csdn.net/weixin_41948388/article/details/86484666
https://blog.csdn.net/qq_37141936/article/details/82826025