Dicom批量转nii(医学影像格式转换,SPM)
Dicom批量转nii(医学影像格式转换,SPM)
实验中需要用spm12进行配准,spm12 配准只能导入nii格式,但影像是dicom格式的,需要先进行格式转换。
spm12有自带的dicom转nii功能,但需要一例一例影像转,费时费力枯燥,好在基于SPM12可以写代码进行批量转换!
1. 在matlab上安装好spm12,安装方法可参考smp12官网
2. 文件组织方式
dicom path:
保存所有dicom的目录,该目录下是一个一个的病例,每个病例的影像分开保存;
每个病例有多个序列的话,每个序列的dicom再分别用文件夹保存。
nii path:
保存格式转化后nii的目录,该目录下是一个一个的病例,每个病例的影像分开保存;
每个病例有多个序列的话,每个序列的nii再分别用文件夹保存。
注:
(一个序列有多个dicom;一个序列可能有多个,SPM12会自动给一个序列的多个nii命不同的名)
(为方便批量处理,不同病例的同一序列需要统一文件夹命名)
(nii path下的整个目录结构需要预先建立,可以写代码批量建立目录)
(该代码没有处理序列文件夹下不是dicom的情况,需要序列文件夹下直接保存且仅保存该序列的dicom,否则,代码跑不通)
3. matlab代码
%-----------------------------------------------------------------------
% Job saved on 21-Nov-2019 15:35:09 by cfg_util (rev $Rev: 7345 $)
% spm SPM - SPM12 (7487)
% cfg_basicio BasicIO - Unknown
% 用于批量 dicom 转 nii
%-----------------------------------------------------------------------
clc
spm('defaults', 'fmri');
spm_jobman('initcfg');
subjectsdir = {'E:\dicom_path'}; % dicom文件夹的位置,该目录下是一个个病例文件夹
path = 'E:\nii_path'; % 需要整理的病例列表
subjects = dir(path); % 将各病例文件夹名存为list
subjects = {subjects.name}; % 单个或多个被试的文件夹subjects(:,[1,2]) = [];
dicom_dir = 'T1'; % 哪个序列的dicom被转为nii
nsubj = length(subjects); % 病例个数% 遍历所有case
for csubj = 1:nsubjmodality_list = {spm_select('CPath', subjects{csubj}, subjectsdir)};modality = spm_select('CPath', dicom_dir, modality_list);if exist(modality,'dir')==0 % 如果该case没有该序列文件夹,跳过该case,处理下一个casesprintf('No %s found for %s', dicom_dir, subjects{csubj})continueenddicom_list = spm_select('List', modality, '/*.dcm'); %该序列dicom名数组,如'1.dcm',指定后缀为dcm%dicom_list = spm_select('List', modality, '/*.'); % 该序列文件夹下的所有文件,如'IM1''1.dcm',不指定后缀nimage = size(dicom_list,1); % 该序列dicom张数,如果张数为0,跳过该序列if nimage == 0sprintf('No functional file found for %s', subjects{csubj})continueend% 各dicom名前加上文件夹路径名,如'E:\dicom_path\case3\T1\1.dicom'new_list = cell(nimage, 1); for i = 1:nimagenew_list{i} = fullfile(modality,dicom_list(i,:));endclear matlabbatchout_p = fullfile(path, subjects{csubj}, dicom_dir); % nii的保存路径matlabbatch{1}.spm.util.import.dicom.data = new_list;matlabbatch{1}.spm.util.import.dicom.root = 'flat';matlabbatch{1}.spm.util.import.dicom.outdir = {out_p};matlabbatch{1}.spm.util.import.dicom.protfilter = '.*';matlabbatch{1}.spm.util.import.dicom.convopts.format = 'nii';matlabbatch{1}.spm.util.import.dicom.convopts.meta = 0;matlabbatch{1}.spm.util.import.dicom.convopts.icedims = 0;% 运行spm_jobman('run', matlabbatch);
end
Dicom批量转nii(医学影像格式转换,SPM)相关推荐
- 医学影像数据格式转换(.mha转.jpg)
文章目录 医学影像数据格式转换(.mha转.jpg) 1. BRAST2015数据集介绍 2. 格式转换 3. 结果展示 医学影像数据格式转换(.mha转.jpg) 1. BRAST2015数据集介绍 ...
- JAVA调用GDAL实现影像格式转换,以tif to jpg为例
前言 本文简单实现java调用GDAL实现影像格式转换. package Marcus.com;import org.gdal.gdal.Dataset; import org.gdal.gdal.D ...
- dicom标注工具_医学影像AI样本标注专用软件
详情 目前,医学影像的人工智能研究正高速发展,但还没有专用于医学影像样本标注的软件.基于此,本公司开发了该软件,该软件具有以下功能特色: 1. 可同时批量打开不同序列或不同参数的两组DICOM图像,进 ...
- 【python3】批量将xls和csv格式转换成xlsx格式文件
目录 目录 1.1 效果演示 1.2 源代码 1.3 参考博客 目录 1.1 效果演示 1.2 源代码 #encoding: utf-8 from ctypes import * import tim ...
- 音频和视频批量合并,及格式转换
问题描述 很多时候我们下载资源的音频和视频是分开的,比如Youtube和Bilibili,那么怎么才能最方便的进行批量合并并且能够实现格式转换呢 工具及必备知识 1.ffmpeg工具,能够使用命令行来 ...
- 批量文档处理软件推荐,同时处理 Word、Excel、PPT、PDF 等办公文件,支持批量格式转换、重命名和查找替换等
概要:今天给大家带来的这款专门针对 Word.PPT.Excel.PDF 和记事本文本文件批量处理格式转换的软件--我的ABC软件工具箱.它集合了批量修改文件名称.批量修改文件内容.批量设置页眉页脚. ...
- 医学影像PACS系统解决方案与成功案例汇总
经历过2010年一年时间,HC3i论坛也与大家相伴快一年了,这一年中,网友分享专业医疗信息化资料超过15000个,HC3i感谢大家的支持与厚爱!岁末年初之极,也整理盘点一下,方便大家回顾一年中精华资源 ...
- PDF 文件编辑修改与格式转换
将pdf文件导出转换为doc.txt的软件网上很多,然而pdf格式的文件也是很多电子书粉丝的最好,其轻巧易读性是难得的格式,网上讲doc转换成pdf的却不多,wps文档可以将doc文档另存为pdf之外 ...
- 有关dicom格式医学影像的分析
一.Dicom简介 1.DICOM(Digital Imaging and Communications in Medicine)即医学数字成像和通信,是医学图像和相关信息的国际标准(ISO 1205 ...
最新文章
- 智源大会“人工智能伦理、治理与可持续发展论坛”超5000人线上参会,专家敦促全球多边协作...
- U盘安装Ubuntu三步走
- 如何将自己的代码放到github上
- 立刻、马上对你的电脑做这三件事!
- Notepad++ 查找替换 换行符的方法
- 《南溪的python灵隐笔记》——tqdm的学习笔记
- 15行代码抓取兰亭序全文单字高清字帖
- 2015蓝桥杯C++A:手链样式(圆排列和环排列)
- 计算机组成与体系结构
- 产生式系统实验(AI实验一)
- CLRS 16.2贪心算法的原理
- 1109: 方块消除 blocks
- centos /bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
- 爬虫攻守道 - 2023最新 - Python Selenium 实现 - 数据去伪存真,正则表达式谁与争锋 - 爬取某天气网站历史数据
- 【Spring Security OAuth2笔记系列】- spring security - 图片验证码
- Java 8 之实战篇
- 实施配置 b/s 架构 webERP
- IBM ServerGuide 9.21
- (转)网站建设的程序语言,Asp,Php,Jsp,Asp.Net优势比较
- 项目管理软件选型【OA与项目管理】
热门文章
- android——rxjava异步Consumer类似promise、重试机制、网络请求失败重试、合并两个异步都完成才往下运行、实现数据缓存优先加载
- 再生人造皮肤行业调研报告 - 市场现状分析与发展前景预测
- 【BIOS/UEFI硬件知识储备】内存——主板布线、双通道
- 【PI应用】用Java查询雅虎天气并解析Json数据
- 苹果手机可以分屏吗_为什么苹果手机就可以定价五千,换成安卓手机就不合理吗?...
- 【附源码】计算机毕业设计JAVA仟侬堂茶具网站
- 获取图片中牙套的长脚
- 生信小白入门必看网站!常用数据库分享
- 快手通过标签添加的我_快手通过关注页添加是什么意思
- 新年第一炸!上海大学计算机考研分数爆炸!