医学图像将dcm格式转化的nii格式如何处理
1.数据格式
在MRI数据不同序列下存放着dcm格式的数据,以及单个nii格式的mask文件,所以需要将data和label分离。
2.数据处理
使用 os库进行文件处理,用shutil库进行文件迁移
进行文件夹访问
os.listdir() 进行文件夹内多个文件到列表的转化
os.path.join() 将路径进行拼接,一般用在子文件夹的访问处理中
对于文件复制之前需要在目的位置建立文件夹
一般用 os.path.exists(目的文件夹名)
判断是否存在,如果不存在,使用 os.makedirs() 进行创建
最后 使用 shutil.move 将文件进行剪切,shutil库的copy函数则进行复制,源文件夹中该文件还存在
代码如下:
import os
import shutilrootDir = r'D:\python\data\weihai\atypical meningioma\data'root_list = os.listdir(rootDir)
for patient in root_list:root_and_patName = os.path.join(rootDir,patient)xulie = os.listdir(root_and_patName)for xu in xulie:origin_dir = os.path.join(root_and_patName,xu,xu+'.nii')if os.path.exists(origin_dir):target_dir = r'D:\python\data\weihai\atypical meningioma\label'end_dir = os.path.join(target_dir,patient,xu)if not os.path.exists(end_dir):os.makedirs(end_dir)shutil.move(origin_dir,end_dir)
3.dcm2nii
#coding=utf-8
import SimpleITK as sitk
import osdef dcm2nii(dcms_path, nii_path):# 1.构建dicom序列文件阅读器,并执行(即将dicom序列文件“打包整合”)reader = sitk.ImageSeriesReader()dicom_names = reader.GetGDCMSeriesFileNames(dcms_path)reader.SetFileNames(dicom_names)image2 = reader.Execute()# 2.将整合后的数据转为array,并获取dicom文件基本信息image_array = sitk.GetArrayFromImage(image2) # z, y, xorigin = image2.GetOrigin() # x, y, zspacing = image2.GetSpacing() # x, y, zdirection = image2.GetDirection() # x, y, z# 3.将array转为img,并保存为.nii.gzimage3 = sitk.GetImageFromArray(image_array)image3.SetSpacing(spacing)image3.SetDirection(direction)image3.SetOrigin(origin)sitk.WriteImage(image3, os.path.join(nii_path,))if __name__ == '__main__':dcms_root_path = r'D:\python\data\weihai\atypical meningioma\data' # dicom序列文件所在路径nii_path = r'D:\python\data\weihai\atypical meningioma\niidata' # 所需.nii.gz文件保存路径patients = os.listdir(dcms_root_path)for p in patients:dcm_xulie_path = os.path.join(dcms_root_path,p)xulie = os.listdir(dcm_xulie_path)for xu in xulie:dcm_path = os.path.join(dcm_xulie_path,xu)save_path = os.path.join(nii_path,p)if not os.path.exists(save_path):os.makedirs(save_path)dcm2nii(dcm_path, save_path+f'/{xu}.nii.gz')
医学图像将dcm格式转化的nii格式如何处理相关推荐
- pandas将dataframe中的年、月、日数据列合并成完整日期字符串、并使用to_datetime将字符串格式转化为日期格式
pandas将dataframe中的年.月.日数据列合并成完整日期字符串.并使用to_datetime将字符串格式转化为日期格式 目录
- android 格式转化,智兔格式转换器
智兔格式转换器,一款非常实用的文件转换助手,支持图片.音频.视频等多种文件格式的转换,mp4, m4v,PDF等文件类型都能轻松进行转换,页面简洁,还能进行视频文件转音频格式的操作,专业文稳定,即转即 ...
- 安卓将数据库里Fri Jun 22 19:50:49 GMT+08:00 2018格式转化为正常格式
在安卓数据库存储时间的时候,直接存储的New Date(),然而当读取数据库的时候,读出来的字符串为Fri Jun 22 19:50:49 GMT+08:00 2018,当然我们想要的是18-06-2 ...
- Excel中将时间格式转化成时间戳格式
时间戳转成正常日期的公式: C1=(A1+8*3600)/86400+70*365+19 其中A1表示当时的1249488000时间戳数值 其中C1就是所需的日期格式,C1单元格属性改成日期格式就可以 ...
- 怎么把html格式转换成数字,Excel文本格式怎么转化成数字格式 excel文本转化数字格式教程...
怎么将excel表格中的文本转化为数字格式呢?我们在使用excel表格的时候,数字格式的数据会更方便用户编辑,所以很多用户都会选择把文本格式转换为数字格式,具体如何操作大家请看下方的excel文本转化 ...
- 时间转化为字符串格式的方法
在数据库保存时间,我们通常用的是datetime,所以我们在项目中如果没有转化为字符串格式的话,就会按照数据库原始的时间来显示出来, 这也是时间格式的一种,现在我就教你们怎么将这种格式转化为,我们熟悉 ...
- 经纬度度与度分格式转化
前言 在做定位服务的时候,惯导设备的经纬度数据经常以度分格式的形式输出,而我们要进行业务处理时,则经常要将度分格式转化为度的格式,方便计算.在查找了一些资料之后,记录了解决的办法,方便后面查看. 一. ...
- nii格式和nii.gz格式详解
文章目录 nii基础 hdr/header Extension Image 坐标 体素 转换矩阵 转换矩阵内部参数概念 转换矩阵组成 转换矩阵应用 nii格式 最后 nii基础 大部分医学领域导出di ...
- .nii格式文件解析
一.nii格式文件具体内容 nii格式(NIFTI格式的扩展)是为多维神经影像学发明的,可真实反映元数据,包含方向信息.nii格式图片主要包含三部分信息:hdr, ext, img(其中.hdr和.i ...
最新文章
- Redis-10Redis的事务回滚
- chromium net android移植
- Zxing二维码重复扫描,不退出。
- 十大非著名之父:手机,黑莓,iPod,FORTRAN,远程办公,鼠标,垃圾邮件,DSL,Java,WIFI说,我爸是...-asp.net关注...
- java web之servlet
- UVA11005 Cheapest Base【数学】
- 广东地区电信官方DNS服务器
- M1 Mac 档案的临时暂存区工具: Yoink
- Atitit 战略之道 attilax著 v4 r88
- prototype中文参数乱码解决方案
- js 金额格式化 和 转成人民币大写金额形式
- 工程思维把每件事都当作一个项目来做
- java中获取农历日期以及星期几
- 跟上!本周业界动态来了!Java周报,2019/8/10,黑客日教程
- 4月20日第壹简报,星期四,农历三月初一,谷雨
- macbook重装系统 选择方案_超详细的mac重装系统教程
- 【用户画像】应用场景
- 神经网络学习小记录45——Keras常用学习率下降方式汇总
- PHP环境安装步骤及详解
- 思科与华为BGP配置命令对比