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)相关推荐

  1. 医学影像数据格式转换(.mha转.jpg)

    文章目录 医学影像数据格式转换(.mha转.jpg) 1. BRAST2015数据集介绍 2. 格式转换 3. 结果展示 医学影像数据格式转换(.mha转.jpg) 1. BRAST2015数据集介绍 ...

  2. JAVA调用GDAL实现影像格式转换,以tif to jpg为例

    前言 本文简单实现java调用GDAL实现影像格式转换. package Marcus.com;import org.gdal.gdal.Dataset; import org.gdal.gdal.D ...

  3. dicom标注工具_医学影像AI样本标注专用软件

    详情 目前,医学影像的人工智能研究正高速发展,但还没有专用于医学影像样本标注的软件.基于此,本公司开发了该软件,该软件具有以下功能特色: 1. 可同时批量打开不同序列或不同参数的两组DICOM图像,进 ...

  4. 【python3】批量将xls和csv格式转换成xlsx格式文件

    目录 目录 1.1 效果演示 1.2 源代码 1.3 参考博客 目录 1.1 效果演示 1.2 源代码 #encoding: utf-8 from ctypes import * import tim ...

  5. 音频和视频批量合并,及格式转换

    问题描述 很多时候我们下载资源的音频和视频是分开的,比如Youtube和Bilibili,那么怎么才能最方便的进行批量合并并且能够实现格式转换呢 工具及必备知识 1.ffmpeg工具,能够使用命令行来 ...

  6. 批量文档处理软件推荐,同时处理 Word、Excel、PPT、PDF 等办公文件,支持批量格式转换、重命名和查找替换等

    概要:今天给大家带来的这款专门针对 Word.PPT.Excel.PDF 和记事本文本文件批量处理格式转换的软件--我的ABC软件工具箱.它集合了批量修改文件名称.批量修改文件内容.批量设置页眉页脚. ...

  7. 医学影像PACS系统解决方案与成功案例汇总

    经历过2010年一年时间,HC3i论坛也与大家相伴快一年了,这一年中,网友分享专业医疗信息化资料超过15000个,HC3i感谢大家的支持与厚爱!岁末年初之极,也整理盘点一下,方便大家回顾一年中精华资源 ...

  8. PDF 文件编辑修改与格式转换

    将pdf文件导出转换为doc.txt的软件网上很多,然而pdf格式的文件也是很多电子书粉丝的最好,其轻巧易读性是难得的格式,网上讲doc转换成pdf的却不多,wps文档可以将doc文档另存为pdf之外 ...

  9. 有关dicom格式医学影像的分析

    一.Dicom简介 1.DICOM(Digital Imaging and Communications in Medicine)即医学数字成像和通信,是医学图像和相关信息的国际标准(ISO 1205 ...

最新文章

  1. 智源大会“人工智能伦理、治理与可持续发展论坛”超5000人线上参会,专家敦促全球多边协作...
  2. U盘安装Ubuntu三步走
  3. 如何将自己的代码放到github上
  4. 立刻、马上对你的电脑做这三件事!
  5. Notepad++ 查找替换 换行符的方法
  6. 《南溪的python灵隐笔记》——tqdm的学习笔记
  7. 15行代码抓取兰亭序全文单字高清字帖
  8. 2015蓝桥杯C++A:手链样式(圆排列和环排列)
  9. 计算机组成与体系结构
  10. 产生式系统实验(AI实验一)
  11. CLRS 16.2贪心算法的原理
  12. 1109: 方块消除 blocks
  13. centos /bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
  14. 爬虫攻守道 - 2023最新 - Python Selenium 实现 - 数据去伪存真,正则表达式谁与争锋 - 爬取某天气网站历史数据
  15. 【Spring Security OAuth2笔记系列】- spring security - 图片验证码
  16. Java 8 之实战篇
  17. 实施配置 b/s 架构 webERP
  18. IBM ServerGuide 9.21
  19. (转)网站建设的程序语言,Asp,Php,Jsp,Asp.Net优势比较
  20. 项目管理软件选型【OA与项目管理】

热门文章

  1. android——rxjava异步Consumer类似promise、重试机制、网络请求失败重试、合并两个异步都完成才往下运行、实现数据缓存优先加载
  2. 再生人造皮肤行业调研报告 - 市场现状分析与发展前景预测
  3. 【BIOS/UEFI硬件知识储备】内存——主板布线、双通道
  4. 【PI应用】用Java查询雅虎天气并解析Json数据
  5. 苹果手机可以分屏吗_为什么苹果手机就可以定价五千,换成安卓手机就不合理吗?...
  6. 【附源码】计算机毕业设计JAVA仟侬堂茶具网站
  7. 获取图片中牙套的长脚
  8. 生信小白入门必看网站!常用数据库分享
  9. 快手通过标签添加的我_快手通过关注页添加是什么意思
  10. 新年第一炸!上海大学计算机考研分数爆炸!