博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nii数据转png图像
阅读量:3903 次
发布时间:2019-05-23

本文共 1687 字,大约阅读时间需要 5 分钟。

pytho将nii数据转PNG图片

python将.nii格式转png的方法

在医疗图像里面MRI图像存储为nii的时候,三维图像。四维则带上了时间标签。

nii数据解压以后如下图:

在这里插入图片描述

nii解压以后的格式
都是压缩包,在Python打开时后面要加上.gz

nii数据读取

import matplotlibmatplotlib.use('TkAgg')from matplotlib import pylab as pltimport nibabel as nibfrom nibabel import nifti1from nibabel.viewers import OrthoSlicer3Dexample_filename = './training/training/patient001/patient001_4d.nii.gz'img = nib.load(example_filename)print(img)print(img.header['db_name'])  # 输出头信息#显示图像width, height, queue ,S= img.dataobj.shapeOrthoSlicer3D(img.dataobj).show()

批量将某个文件夹下3维的转为png代码

import numpy as npimport os  # 遍历文件夹import nibabel as nib  # nii格式一般都会用到这个包import imageio  # 转换成图像def nii_to_image(niifile):    filenames = os.listdir(filepath)  # 读取nii文件夹    print(filenames)    slice_trans = []    for f in filenames[2:6]:        # 开始读取nii文件        img_path = os.path.join(filepath, f)        img = nib.load(img_path)  # 读取nii        img_fdata = img.get_fdata()        fname = f.replace('.nii', '')  # 去掉nii的后缀名        img_f_path = os.path.join(imgfile, fname)        # 创建nii对应的图像的文件夹        if not os.path.exists(img_f_path):            os.mkdir(img_f_path)  # 新建文件夹        # 开始转换为图像        (x, y, z) = img.shape        for i in range(z):  # z是图像的序列            silce = img_fdata[:, :, i]  # 选择哪个方向的切片都可以            imageio.imwrite(os.path.join(img_f_path, '{}.png'.format(i)), silce)            # 保存图像if __name__ == '__main__':    处理多个文件    filepath1 = './training/training/'    filenames2 = os.listdir(filepath1)    for i in filenames2:    	filepath= os.path.join('./training/training/', i)    #处理单个文件    #filepath = './training/training/patient001'    imgfile = './iamge'    print(filepath)    nii_to_image(filepath)

转载地址:http://onoen.baihongyu.com/

你可能感兴趣的文章
数十种TensorFlow实现案例汇集:代码+笔记
查看>>
python记录的错误与知识
查看>>
内核中各种套接字的关系
查看>>
linux sysctl 参数实现 暨 ip_forward参数对Linux内核转发影响分析
查看>>
linux 路由表 的一些相关资料
查看>>
Linux 路由 学习笔记 之三 路由查找流程分析
查看>>
LINUX IP 路由实现
查看>>
快速重传与快速恢复算法
查看>>
TCP重传定时器
查看>>
CentOS 6.3 - 安装 Nginx 1.2.7(yum源)
查看>>
shell中trap捕获信号
查看>>
关于Linux Shell的信号trap功能你必须知道的细节
查看>>
Linux原始套接字实现分析
查看>>
CENTOS 6.5 配置YUM安装NGINX
查看>>
#ifdef DEBUG的理解
查看>>
Linux 任务控制的几个技巧( &, [ctrl]-z, jobs, fg, bg, kill)
查看>>
慧眼云:基于云计算和大数据分析的主动防御实践
查看>>
58集团监控业务实践:将网站运行信息透明化
查看>>
给Django用户的SQLAlchemy介绍
查看>>
consul http api
查看>>