文章目录

  • 前言
  • 医学图像格式
    • DICOM
    • NIFTI
  • python代码

前言

NIfTI 中的图像原始数据一般被存储成了三维图像,而dicom存储为二维图层,所以相对于DICOM文件,NIFTI文件更加易用于机器学习,因为NIfTI 是三维图像,处理一个单独的NIfTI 文件要比处理成百上千个DICOM文件更加容易一些。

医学图像格式

DICOM 和 NIFTI 是最常用的格式,下面对其进行简单介绍。

DICOM

DICOM 代表的是医疗数字成像和通信。DICOM 是由美国国家电气制造商协会(NEMA)制定的标准。它定义了医疗成像领域中关于信息处理、存储、打印以及传输的标准,这些都是你在扫描仪或者某家医院的图片归档和通信系统(PACS)能够立即得到的文件格式。
它包括了文件格式和能够接收图像以及 DICOM 格式的病人数据的实体之间使用 TCP/IP 进行通信的协议。

一个 DICOM 文件包含文件头部和同文件名的*.dcm 图像数据。文件头部的大小取决于它所提供的信息的多少。文件头包含以下信息:病人的 ID,病人的姓名,图像的模态以及其他信息。它定义了帧的数量以及图像的精度。这些信息会被图像浏览器在显示图像时用到。对于一个图像采样,会有很多个 DICOM 文件。

NIFTI

Nifti 格式最初是为神经影像学发明的。神经影像信息学技术计划(NIFTI)将 NIfTI 格式预设为 ANALYZE7.5 格式的替代品。它最初的应用领域是神经影像,但是也被用在其他领域。这种格式的主要特点就是它包含两个能够将每个体素的索引(i,j,k)和它的空间位置(x,y,z)关联起来的仿射坐标。

python代码

import numpy as np
import shutil
import os
import SimpleITK as sitkdef dcm2nii_sitk(path_read, path_save):reader = sitk.ImageSeriesReader()seriesIDs = reader.GetGDCMSeriesIDs(path_read)N = len(seriesIDs)lens = np.zeros([N])for i in range(N):dicom_names = reader.GetGDCMSeriesFileNames(path_read, seriesIDs[i])lens[i] = len(dicom_names)N_MAX = np.argmax(lens)dicom_names = reader.GetGDCMSeriesFileNames(path_read, seriesIDs[N_MAX])reader.SetFileNames(dicom_names)image = reader.Execute()if not os.path.exists(path_save):os.mkdir(path_save)sitk.WriteImage(image, path_save+'/data.nii.gz')DICOMpath = r"F:\Dicomdataset"   #dicom文件夹路径
Midpath = r"F:\middataset"   #处理中间数据路径
Resultpath = r"F:\result"    #保存路径
cases = os.listdir(DICOMpath)  #获取dicom文件夹路径子文件夹名
for c in cases:  #遍历dicom文件夹路径子文件path_mid = os.path.join(DICOMpath , c)  #获取dicom文件夹下每一套数据的路径dcm2nii_sitk(path_mid , Midpath )  #将dicom转换为nii,并保存在Midpath中shutil.copy(os.path.join(Midpath , "data.nii.gz"), os.path.join(Resultpath , c + ".nii.gz"))#重新对保存后的nii文件名进行命名,并复制到Resultpath下

医学图像Dicom(.dcm)转换为NIFTI(.nii)格式相关推荐

  1. 用python将dycom .dcm格式图像转换为nifti .nii

    第一步安装dicom2nifti库,在你的环境中使用pip安装: pip install dicom2nifti 第二步,在你的python代码中使用dicom2nifti.convert_direc ...

  2. 3D医学图像CT dcm格式转换为png

    医学图像 CT dcm格式转换为png 在normalize_hu()中修改像素值,需要具体数据对象具体分析 只需要在main函数中更改dcm文件路径 """ 读取dic ...

  3. 医学图像NIFTI(.nii)转换为mhd、raw文件格式

    文章目录 NIFTI(.nii)文件格式 mhd.raw文件格式 python代码实现 NIFTI(.nii)文件格式 Nifti 格式最初是为神经影像学发明的.神经影像信息学技术计划(NIFTI)将 ...

  4. 医学图像将dcm格式转化的nii格式如何处理

    1.数据格式 在MRI数据不同序列下存放着dcm格式的数据,以及单个nii格式的mask文件,所以需要将data和label分离. 2.数据处理 使用 os库进行文件处理,用shutil库进行文件迁移 ...

  5. CT数据将.nii格式或.nii.gz格式转换为dcm格式

    1.先转换.nii格式或.nii.gz格式转换为dcm格式 import SimpleITK as sitkimage=sitk.ReadImage(r"D:\python\project\ ...

  6. python将医学图像dicom文件批量转换为avi视频格式

    最近,做了一个批量转换格式带界面的插件,要求是把dicom格式的文件转换为avi视频格式的文件.查阅很多资料之后,完成了该任务. 首先,导入以下库,比如opencv.SimpleITK.numpy等 ...

  7. matlab中批量tiff转png,图片(jpg,png,tif等)批量转dicom(dcm)格式

    简介 医学领域专用工具,千金难求,可以批量把jpg.png.bmp.tif图片转换为dicom(dcm)格式,并且保持原有顺序,同时支持嵌入部分重要的dicom元数据,比如:病人姓名,病人生日等. 将 ...

  8. 将多个png或者jpg图片转为dicom或者nii格式

    dicom和nii很复杂. 在网上找了好几个小时,很少有自己能够解释清楚的. 单个图片转dcm 推荐下载这个软件: dicom-converter官网 缺点:只能把一张图片转化为nii格式 pytho ...

  9. Dicom 转 nii 格式

    import SimpleITK as sitk import numpy as np import matplotlib.pyplot as pltdef dcm_nii(image_path, r ...

最新文章

  1. 多快好省的宏基因组研究技巧 — 资深专家分享
  2. 什么是奇异值?奇异值分解是什么?SVD分解详解及实战
  3. 嵌入式linux启动过程分析,嵌入式Linux裸机开发(二)——S5PV210启动过程分析
  4. mysql 去除括号_MySQL语句批量去除括号及内容
  5. OpenCV图像操作
  6. Redis 的安装与使用
  7. MySQL数据库select语句的使用方法
  8. android日志打印机制,Android4_使用Log打印
  9. LeetCode167 | Two Sum II - Input array is sorted (Easy)
  10. my97中文乱码问题
  11. 简单概述PHP的命名空间及其在自动载入上的应用
  12. 一个查询语句各个部分的执行顺序
  13. 双眼融合训练一个月_视觉融合功能的四种训练方法
  14. Micrium uC-Probe STM32调试工具 ucosIIucosIII
  15. linux cups网络打印机,基于CUPS的网络打印服务器
  16. Okhttp上传图片
  17. 第七届ArcGIS暨ERDAS用户大会
  18. java后台地址(省,市,区)、姓名、手机号算法智能识别
  19. 《中台产品经理宝典》读后感11:大白话说透时下备受追捧的数字化转型是什么?
  20. shell空文件夹查找

热门文章

  1. CSR完全空间随机性最近邻距离分布理论(一)
  2. plt python 自己制定cmap_在plt.cm.get-cmap中可以使用哪些名称?
  3. SAP消耗性物料采购前台操作及后台配置
  4. 《SQL与关系数据库理论——如何编写健壮的SQL代码》一3.7 TABLE_DUM和TABLE_DEE
  5. es ik 多字段查询_SpringBoot使用注解的方式构建Elasticsearch查询语句,实现多条件的复杂查询...
  6. 使用FreeMind辅助分解测试案例
  7. 90后在校大学生开旅游公司创业
  8. (fuel)openstack 冷迁移+热迁移
  9. Java 基础进阶篇(十四):File 类常用方法
  10. Android 曝光采集(商品view曝光量的统计)