读取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检测lvs real server状态
Jan 22 Python
用Python中的wxPython实现最基本的浏览器功能
Apr 14 Python
Python入门之三角函数atan2()函数详解
Nov 08 Python
python如何让类支持比较运算
Mar 20 Python
使用Python读取安卓手机的屏幕分辨率方法
Mar 31 Python
NumPy.npy与pandas DataFrame的实例讲解
Jul 09 Python
Django单元测试工具test client使用详解
Aug 02 Python
Python基于read(size)方法读取超大文件
Mar 12 Python
Django设置Postgresql的操作
May 14 Python
使用PyQt的QLabel组件实现选定目标框功能的方法示例
May 19 Python
pytorch 查看cuda 版本方式
Jun 23 Python
Python利用socket模块开发简单的端口扫描工具的实现
Jan 27 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 preg_match_all结合str_replace替换内容中所有img
2008/10/11 PHP
Yii中CGridView关联表搜索排序方法实例详解
2014/12/03 PHP
PHP实现CSV文件的导入和导出类
2015/03/24 PHP
YII2框架使用控制台命令的方法分析
2020/03/18 PHP
PHP程序员简单的开展服务治理架构操作详解(二)
2020/05/14 PHP
js Array对象的扩展函数代码
2013/04/24 Javascript
jQuery实现数字加减效果汇总
2014/12/16 Javascript
JS实现判断滚动条滚到页面底部并执行事件的方法
2014/12/18 Javascript
javascript实现禁止鼠标滚轮事件
2015/07/24 Javascript
基于jQuery实现的美观星级评论打分组件代码
2015/10/30 Javascript
微信小程序  audio音频播放详解及实例
2016/11/02 Javascript
10道典型的JavaScript面试题
2017/03/22 Javascript
作为老司机使用 React 总结的 11 个经验教训
2017/04/08 Javascript
使用vue自定义指令开发表单验证插件validate.js
2019/05/23 Javascript
微信小程序吸底区域适配iPhoneX的实现
2020/04/09 Javascript
利用webpack理解CommonJS和ES Modules的差异区别
2020/06/16 Javascript
浅谈JavaScript中你可能不知道URL构造函数的属性
2020/07/13 Javascript
[57:18]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#3VP VS VG
2016/03/03 DOTA
Python函数式编程指南(二):从函数开始
2015/06/24 Python
在Apache服务器上同时运行多个Django程序的方法
2015/07/22 Python
Python用模块pytz来转换时区
2016/08/19 Python
python数据结构之链表的实例讲解
2017/07/25 Python
Python 实现一行输入多个值的方法
2018/04/21 Python
对numpy中的数组条件筛选功能详解
2018/07/02 Python
5款Python程序员高频使用开发工具推荐
2019/04/10 Python
tensorflow安装成功import tensorflow 出现问题
2020/04/16 Python
匡威比利时官网:Converse Belgium
2017/04/13 全球购物
世界上最好的儿童品牌:AlexandAlexa
2018/01/27 全球购物
LivingSocial爱尔兰:爱尔兰本地优惠
2018/08/10 全球购物
护士辞职信范文
2014/01/19 职场文书
函授大学生自我鉴定
2014/02/05 职场文书
中等生评语大全
2014/05/04 职场文书
上海世博会志愿者口号
2014/06/17 职场文书
2015个人简历自我评价语
2015/03/11 职场文书
前台接待员岗位职责
2015/04/15 职场文书
公司劳动纪律管理制度
2015/08/04 职场文书