读取nii或nii.gz文件中的信息即输出图像操作


Posted in Python onJuly 01, 2020

读取nii或者nii.gz文件中的信息,并且输出图像。

import matplotlib
from matplotlib import pylab as plt
import nibabel as nib
from nibabel.viewers import OrthoSlicer3D
file = '' #你的nii或者nii.gz文件路径
img = nib.load(file) 
 
print(img)
print(img.header['db_name']) #输出nii的头文件
width, height, queue = img.dataobj.shape
OrthoSlicer3D(img.dataobj).show()
 
num = 1
for i in range(0, queue, 10):
 img_arr = img.dataobj[:,:,i]
 plt.subplot(5,4,num)
 plt.imshow(img_arr, cmap='gray')
 num += 1
 
plt.show()

补充知识:SimpleITK读取医学图像 .nii 数据(2D显示)

【环境】win10 + python3.6 + SimpleITK

nii文件是NIFTI格式的文件,出现的原因是原来一种图像格式是ANALYZE 7.5 format,但是这个图像格式缺少一些信息,比如没有方向信息,病人的左右方位等,如果需要包括额外的信息,就需要一个额外的文件,比如ANALYZE7.5就需要一对<.hdr, .img>文件来保存图像的完整信息。

因此,解决这个问题Data Format Working Group (DFWG) 将图像格式完整的定义为NIFTI(Neuroimaging Informatics Technology Initiative)格式

import SimpleITK as sitk
import skimage.io as io

def read_img(path):
 img = sitk.ReadImage(path)
 data = sitk.GetArrayFromImage(img)
 return data
#显示一个系列图
def show_img(data):
 for i in range(data.shape[0]):
  io.imshow(data[i,:,:], cmap = 'gray')
  print(i)
  io.show()
 
#单张显示
def show_img(ori_img):
 io.imshow(ori_img[100], cmap = 'gray')
 io.show()

#window下的文件夹路径 
path = 'D:\\datasets\\Naso_GTV\\1\\data.nii.gz'
data = read_img(path)
show_img(data)

读取nii或nii.gz文件中的信息即输出图像操作

img = sitk.ReadImage(path)
#查看图片深度
print(img.GetDepth())
#144 共144张图
#查看Size
print(img.GetSize())
#(512,512,144) 像素:512*512, 144张图片

更多的函数自己去发现

读取nii或nii.gz文件中的信息即输出图像操作

以上这篇读取nii或nii.gz文件中的信息即输出图像操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python不带重复的全排列代码
Aug 13 Python
跟老齐学Python之关于循环的小伎俩
Oct 02 Python
Python中处理unchecked未捕获异常实例
Jan 17 Python
python判断一个集合是否包含了另外一个集合中所有项的方法
Jun 30 Python
Python开发中爬虫使用代理proxy抓取网页的方法示例
Sep 26 Python
Python pandas常用函数详解
Feb 07 Python
Numpy数组的保存与读取方法
Apr 04 Python
Python使用cx_Freeze库生成msi格式安装文件的方法
Jul 10 Python
python实现一组典型数据格式转换
Dec 15 Python
python 字符串常用函数详解
Sep 11 Python
Pytorch数据读取之Dataset和DataLoader知识总结
May 23 Python
Python实现单例模式的5种方法
Jun 15 Python
使用SimpleITK读取和保存NIfTI/DICOM文件实例
Jul 01 #Python
使用Nibabel库对nii格式图像的读写操作
Jul 01 #Python
python 读取.nii格式图像实例
Jul 01 #Python
使用npy转image图像并保存的实例
Jul 01 #Python
python实现npy格式文件转换为txt文件操作
Jul 01 #Python
python与pycharm有何区别
Jul 01 #Python
tensorflow 动态获取 BatchSzie 的大小实例
Jun 30 #Python
You might like
4.与数据库的连接
2006/10/09 PHP
BBS(php &amp; mysql)完整版(四)
2006/10/09 PHP
php将会员数据导入到ucenter的代码
2010/07/18 PHP
PHP下常用正则表达式整理
2010/10/26 PHP
php调用新浪短链接API的方法
2014/11/08 PHP
PHP模板引擎Smarty内置变量调解器用法详解
2016/04/11 PHP
Javascript 对象的解释
2008/11/24 Javascript
js实现跨域的多种方法
2015/12/25 Javascript
浏览器环境下JavaScript脚本加载与执行探析之动态脚本与Ajax脚本注入
2016/01/19 Javascript
Ubuntu 16.04 64位中搭建Node.js开发环境教程
2016/10/19 Javascript
jquery仿京东商品放大浏览页面
2017/06/06 jQuery
Ionic + Angular.js实现验证码倒计时功能的方法
2017/06/12 Javascript
Angularjs 手写日历的实现代码(不用插件)
2017/10/18 Javascript
基于substring()和substr()的使用以及区别(实例讲解)
2017/12/28 Javascript
vue使用element-ui的el-input监听不了回车事件的解决方法
2018/01/12 Javascript
vue路由--网站导航功能详解
2019/03/29 Javascript
vue实现短信验证码输入框
2020/04/17 Javascript
[05:28]刀塔密之一:团结则存
2014/07/03 DOTA
Python实现嵌套列表及字典并按某一元素去重复功能示例
2017/11/30 Python
python逆向入门教程
2018/01/15 Python
Python语言的变量认识及操作方法
2018/02/11 Python
Django 路由控制的实现
2019/07/17 Python
详解Python并发编程之创建多线程的几种方法
2019/08/23 Python
Python操作redis和mongoDB的方法
2019/12/19 Python
在Tensorflow中实现梯度下降法更新参数值
2020/01/23 Python
Flask和pyecharts实现动态数据可视化
2020/02/26 Python
详解python变量与数据类型
2020/08/25 Python
HTML5 localStorage使用总结
2017/02/22 HTML / CSS
美国羊皮公司:Overland
2018/01/15 全球购物
荣耀俄罗斯官网:HONOR俄罗斯
2020/10/31 全球购物
业务助理岗位职责
2013/11/18 职场文书
教师党员岗位承诺书
2014/05/29 职场文书
Nginx 负载均衡是什么以及该如何配置
2021/03/31 Servers
Spring Cloud OAuth2实现自定义token返回格式
2022/06/25 Java/Android
webpack介绍使用配置教程详解webpack介绍和使用
2022/06/25 Javascript
vue el-table实现递归嵌套的示例代码
2022/08/14 Vue.js