1. 问题描述
dicom数据是医学上CT/MRI等模态的数据存储的通用格式,Digital Imaging and Communications in Medicine,包含除了体素值以外的其他数据,包括患者信息,扫描参数等,但这样的数据每一层都是一个.dcm文件,很麻烦,转成.nii的数据更方便些。

2. 实现方法
python下直接调用函数就行(感谢造轮子大佬)

import dicom2niftidicom2nifti.convert_directory(dicom_directory, output_folder, compression=True, reorient=True)
  • 其中dicom_directory是包含dicom文件的路径,比如下面这个,20200722下面三个文件夹下都包含dicom数据(这可能是因为医院扫描序列不同或者扫描部位不同,然后存在不同文件夹下),路径写到.../20200722/就可以了,这个函数会读出三个文件夹下的数据,按照扫描序列一一转换

  • output_folder就是你想存输出的.nii文件的文件夹路径

更多内容可以看这个包地官网https://dicom2nifti.readthedocs.io/en/latest/readme.html

3. 其他说明

  1.  每个扫描序列下的slice数量需要大于3,否则会报错'TOO_FEW_SLICES/LOCALIZER',可以在dicom2nifti.common中看到:

    def validate_slicecount(dicoms):"""Validate that volume is big enough to create a meaningfull volumeThis will also skip localizers and alike:param dicoms: list of dicoms"""if len(dicoms) <= 3:logger.warning('At least 4 slices are needed for correct conversion')logger.warning('---------------------------------------------------------')raise ConversionValidationError('TOO_FEW_SLICES/LOCALIZER')

    如果你确实有这种数据而且不会被后面用到,可以加一个判断语句避免这种情况

2.  文件夹遍历os.walk()真是好用

    for root, _, files in os.walk(dicom_directory):for dicom_file in files:file_path = os.path.join(root, dicom_file)

那种文件夹套文件夹地情况,以前还要傻傻地自己遍历。。。os.walk会一直对文件夹下地文件夹遍历,直到没有文件夹

3. 获取扫描序列:

dicom_headers.SeriesInstanceUID

怎么把dicom数据转成nifty数据相关推荐

  1. java 合并到一行_mysql中将多行数据合并成一行数据

    一个字段可能对应多条数据,用mysql实现将多行数据合并成一行数据 例如:一个活动id(activeId)对应多个模块名(modelName),按照一般的sql语句: 1 SELECT am.acti ...

  2. mysql大量数据合并_mysql中将多行数据合并成一行数据

    一个字段可能对应多条数据,用mysql实现将多行数据合并成一行数据 例如:一个活动id(activeId)对应多个模块名(modelName),按照一般的sql语句: 1 SELECT am.acti ...

  3. mysql把相同id的多行合并到一行_mysql中将多行数据合并成一行数据

    一个字段可能对应多条数据,用mysql实现将多行数据合并成一行数据 例如:一个活动id(activeId)对应多个模块名(modelName),按照一般的sql语句: 1 SELECT am.acti ...

  4. Java树形转扁平_js把树形数据转成扁平数据

    我就直接上代码了都是实际项目里面用到的 1.假设这个json就已经是树型结构数据了(如果不知道怎么实现树型结构数据请看我另一篇博客) var compressedArr=afcommon.treeDa ...

  5. 【Flex】读取本地JSON,然后JSON数据转成XML数据

    package utils {import flash.xml.XMLDocument;import flash.xml.XMLNode;import mx.rpc.xml.SimpleXMLEnco ...

  6. dicom文件_DICOM数据转成NIfTI数据

    使用MRIcron工具中的dcm2nii命令,还可以可视化NIfTI数据. $ sudo apt install mricron 使用命令行操作: ## 查看帮助文档 使用dcm2nii工具转换成NI ...

  7. Python dataframe指定列顺序输出 + 列数据转化成字符 + 数据框转化成列表

    参考: (3条消息)pandas中的DataFrame按指定顺序输出所有列 - quintind的专栏 - CSDN博客 https://blog.csdn.net/quintind/article/ ...

  8. EXCEL中把文本数据转化成数字数据

    在EXCEL中,用公式计算值得时候,经常会遇见无法计算,出现#VALUE!的情况. 如: 此时,单击报错的感叹号-----再点击"显示计算步骤" 我们发现,就是的数字1997,是由 ...

  9. 博约新媒体大数据中心_聚焦媒体深度融合与大数据 想成主流数据中心不可少...

    原标题:想成为主流?数据中心不可少! 资料图片 "深度融合与大数据"是加快推进媒体融合的有效手段和发展方向.日前,在由传媒杂志社和贵州日报报业集团主办的第十二届中国传媒年会上,来自 ...

  10. ffmpeg 采集 yuyv422数据 转成 yuy420数据 并播放

    本实验需要 libx264库 安装 libx264wget https://code.videolan.org/videolan/x264/-/archive/master/x264-master.t ...

最新文章

  1. ASP.NET中用healthMonitor属性用
  2. html5关于定位功能的实现
  3. 2)JS动态生成HTML元素的爬取
  4. gitlab之gitlab-ci和gitlab-runner二
  5. Android钢琴滑动代码,android 钢琴界面实现
  6. float,double等精度丢失问题
  7. Alex Hanna博士:Google道德AI小组研究员
  8. ubuntu lamp(apache+mysql+php) 环境搭建及相关扩展更新
  9. #运算符、不同的指针类型、数组和指针、指针运算、堆、栈、静态区、只读区、下标VS指针...
  10. leetcode 78.子集 dfs解法
  11. Ps 初学者教程,如何使用色阶功能提高照片的对比度和亮度?
  12. Web版的各种聊天工具
  13. NB-IoT独立式烟感在出租屋的防火安全应用
  14. MarkDown的下载、安装和基础使用
  15. 黑少微服务商店实战经验分享:从单体式架构迁移到微服务架构
  16. 挪车码微信小程序开发(隐私保护通话)
  17. map-box地图点击图标高亮事件
  18. 2022年股权转让怎么计算个人所得税
  19. 高手攻关心得:RHCE实战详细经验
  20. 华为设备DHCP配置命令

热门文章

  1. 宠物收养所(c++)
  2. 十七、面相对象的进阶
  3. LeetCode.714.买卖股票的最佳时机含手续费
  4. 组件分享之后端组件——超轻量级的工作流引擎go-workflow
  5. linux查看目录增大了多少g命令,Linux中查看各文件夹大小命令
  6. 直播美颜SDK从技术层面如何自行实现
  7. VirtuoZo:航摄影像的处理及拼接
  8. 2018 BACS Regional Programming Contest F. Football Free Kick(map离散化)
  9. 给苹果电脑选机械键盘
  10. 供应链金融的三种业务模式