读取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实现查找excel里某一列重复数据并且剔除后打印的方法
May 26 Python
运行django项目指定IP和端口的方法
May 14 Python
Python 安装第三方库 pip install 安装慢安装不上的解决办法
Jun 18 Python
pytorch 模型的train模式与eval模式实例
Feb 20 Python
使用python实现多维数据降维操作
Feb 24 Python
Python如何实现在字符串里嵌入双引号或者单引号
Mar 02 Python
基于python图像处理API的使用示例
Apr 03 Python
Python如何使用队列方式实现多线程爬虫
May 12 Python
计算Python Numpy向量之间的欧氏距离实例
May 22 Python
Python如何使用ElementTree解析xml
Oct 12 Python
解决import tensorflow导致jupyter内核死亡的问题
Feb 06 Python
python 如何做一个识别率百分百的OCR
May 29 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
php中magic_quotes_gpc对unserialize的影响分析
2014/12/16 PHP
php使用curl获取https请求的方法
2015/02/11 PHP
2017年最好用的9个php开发工具推荐(超好用)
2017/10/23 PHP
PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
2018/04/20 PHP
PDO::getAttribute讲解
2019/01/28 PHP
PHP精确到毫秒秒杀倒计时实例详解
2019/03/14 PHP
Yii框架的布局文件实例分析
2019/09/04 PHP
php和js实现根据子网掩码和ip计算子网功能示例
2019/11/09 PHP
js计算页面刷新的次数
2009/07/20 Javascript
JavaScript中cookie工具函数封装的示例代码
2016/10/11 Javascript
webpack+vue.js实现组件化详解
2016/10/12 Javascript
HTML5 js实现拖拉上传文件功能
2020/11/20 Javascript
JavaScript贪吃蛇小组件实例代码
2017/08/20 Javascript
JS无限级导航菜单实现方法
2019/01/05 Javascript
使用VueRouter的addRoutes方法实现动态添加用户的权限路由
2019/06/03 Javascript
createObjectURL方法实现本地图片预览
2019/09/30 Javascript
nest.js 使用express需要提供多个静态目录的操作方法
2019/10/24 Javascript
vue项目开启Gzip压缩和性能优化操作
2020/10/26 Javascript
[03:40]DOTA2英雄梦之声_第01期_炼金术士
2014/06/23 DOTA
浅谈numpy中linspace的用法 (等差数列创建函数)
2017/06/07 Python
Python使用sorted排序的方法小结
2017/07/28 Python
Django中的forms组件实例详解
2018/11/08 Python
Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
2019/06/25 Python
python图形用户接口实例详解
2019/12/16 Python
Python接口测试文件上传实例解析
2020/05/22 Python
HTML5实现移动端弹幕动画效果
2019/08/01 HTML / CSS
毕业生的自我鉴定
2013/10/29 职场文书
3分钟英语演讲稿
2014/04/29 职场文书
端午节演讲稿
2014/05/23 职场文书
应聘教师自荐书
2014/06/16 职场文书
2014副局长群众路线对照检查材料思想汇报
2014/09/22 职场文书
幼儿园大班教育随笔
2015/08/14 职场文书
2016年小学生寒假总结
2015/10/10 职场文书
什么是执行力?9个故事告诉您:成功绝非偶然!
2019/07/05 职场文书
选择比努力更重要?这是长期以来对“努力”的最大误解
2019/07/12 职场文书
html+css合并表格边框的示例代码
2021/03/31 HTML / CSS