IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> fsl左右海马体分割+freesurfer合并 -> 正文阅读

[人工智能]fsl左右海马体分割+freesurfer合并

背景

需要分割出海马体。可借鉴方法:深度学习(UNet分割),形态学上的开闭,fsl中的分割。
使用fsl种的分割时需要注意,fsl分割分为左海马和右海马
方法:使用fsl中的first命令进行分割。
先在终端输入first查看需要输入的参数:
在这里插入图片描述

可以看到-i 要从哪个文件进行提取-k输出分割文件名称-m 分割的标准文件(*.bmv)-l 做flirt时的变换矩阵
关于*.bmv文件:fsl自带的,在fsl安装目录data/first下面:
在这里插入图片描述

关于这两个文件夹有什么区别不清楚,但是海马在选中的文件夹中。

bash直接运行

命令:

first -i subj.nii -l subjmat.mat -m L_Hipp_bin.bmv -k l_hippo.nii

同样的方法生成右海马:

first -i subj.nii -l subjmat.mat -m R_Hipp_bin.bmv -k r_hippo.nii

使用freesurfer中的mri_concat命令将左海马和右海马合并成整个海马体:

mri_concat --combine l_hippo.nii r_hippo.nii --o hippo.nii

得到hippo.nii就是海马文件:
在这里插入图片描述

python+nipype实现

分割成左右海马体+合并代码

import os
import subprocess
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QMessageBox

def hippoSeg(in_file, out_file, out_path):
    '''
	segmentation hippocampus, and show the messagebox.
    :param in_file: subj-T1.nii
    :param out_file: hippo.nii
    :param out_path: /home/xxx/Desktop/test
    :return:
    '''

    l_hippo = os.path.join(out_path, 'L_Hipp_bin.bmv')
    r_hippo = os.path.join(out_path, 'R_Hipp_bin.bmv')

    mat_file = os.path.join(out_path, 'reg.mat') # 配准时输出的矩阵
    l_hippo_out = os.path.join(out_path, 'l_hippo.nii.gz')
    r_hippo_out = os.path.join(out_path, 'r_hippo.nii.gz')

    try:
   		''' 分割左海马体 '''
        l_hippo_cmd = 'first -i {0} -l {1} -m {2} -k {3}'.format(in_file, mat_file, l_hippo, l_hippo_out)
        # 因为是连接的远程环境,所以每次使用fsl中的命令需要重新inport一下,感觉有点繁琐。
        l_cmdline = 'export FSLDIR=/etc/fsl/5.0 && source $FSLDIR/fsl.sh && {0}'.format(l_hippo_cmd)
        task = subprocess.run(l_cmdline, shell=True, stdout=subprocess.PIPE)
    except BaseException as err:
        print('err\n', err)
        QMessageBox.information(QtWidgets.QWidget(), 'messagebox', 'left hippocampus segmentation error, see log file',
                                QMessageBox.Yes)
        return -1

    try:
    	''' 分割右海马体 '''
        r_hippo_cmd = 'first -i {0} -l {1} -m {2} -k {3}'.format(in_file, mat_file, r_hippo, r_hippo_out)
        r_cmdline = 'export FSLDIR=/etc/fsl/5.0 && source $FSLDIR/fsl.sh && {0}'.format(r_hippo_cmd)
        task = subprocess.run(r_cmdline, shell=True, stdout=subprocess.PIPE)
    except BaseException as err:
        print('err\n', err)
        QMessageBox.information(QtWidgets.QWidget(), 'messagebox', 'right hippocampus segmentation error, see log file',
                                QMessageBox.Yes)
        return -1

    try:
    	''' 左右海马体联合 '''
    	# 这条命令可以换成nipype包中的API接口,这里偷懒没有换。
        concat_cmd = 'mri_concat --combine {0} {1} --o {2}'.format(os.path.join(out_path, l_hippo_out), 
                                                                   os.path.join(out_path, r_hippo_out),
                                                                   os.path.join(out_path, out_file))
         ''' 同样需要export一下freesurfer '''
        merge_cmdline = 'export FREESURFER_HOME=/usr/local/freesurfer && source $FREESURFER_HOME/SetUpFreeSurfer.sh &&  {0}'.format(concat_cmd)
        print('start merge')
        task = subprocess.run(merge_cmdline, shell=True, stdout=subprocess.PIPE)
        print('finished!')
        QMessageBox.information(QtWidgets.QWidget(), 'messagebox', 'finished hippocampus ',
                                QMessageBox.Yes)
        return 1
    except BaseException as err:
        print('err\n', err)
        QMessageBox.warning(QtWidgets.QWidget(), 'messagebox', 'hippocampus merge error, see log file',
                                QMessageBox.Yes)
        return -1
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-29 12:08:38  更:2022-04-29 12:11:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:52:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码