读取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实现颜色rgb和hex相互转换的函数
Mar 19 Python
在Python程序中进行文件读取和写入操作的教程
Apr 28 Python
Python实现文件复制删除
Apr 19 Python
Python3中类、模块、错误与异常、文件的简易教程
Nov 20 Python
python 提取key 为中文的json 串方法
Dec 31 Python
使用python获取(宜宾市地震信息)地震信息
Jun 20 Python
Django Rest framework三种分页方式详解
Jul 26 Python
如何通过python实现人脸识别验证
Jan 17 Python
django项目中新增app的2种实现方法
Apr 01 Python
Python实现异步IO的示例
Nov 05 Python
python 实现socket服务端并发的四种方式
Dec 14 Python
python开发人人对战的五子棋小游戏
May 02 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中操作MySQL数据库的一些要注意的问题
2006/10/09 PHP
PHP中对用户身份认证实现两种方法
2011/06/04 PHP
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
2013/06/18 PHP
Symfony2学习笔记之控制器用法详解
2016/03/17 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
超级简单的图片防盗(HTML),好用
2007/04/08 Javascript
jQuery向上遍历DOM树之parents(),parent(),closest()之间的区别
2013/12/02 Javascript
js查看一个函数的执行时间实例代码
2015/09/12 Javascript
详解js跨域原理以及2种解决方案
2015/12/09 Javascript
jQuery实现的超简单点赞效果实例分析
2015/12/31 Javascript
jQuery EasyUI Tab 选项卡问题小结
2016/08/16 Javascript
Javascript动画效果(4)
2016/10/11 Javascript
Vue2.0父组件与子组件之间的事件发射与接收实例代码
2017/09/19 Javascript
在小程序/mpvue中使用flyio发起网络请求的方法
2018/09/13 Javascript
vue使用keep-alive保持滚动条位置的实现方法
2019/04/09 Javascript
vue路由传参三种基本方式详解
2019/12/09 Javascript
[51:29]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
改进Django中的表单的简单方法
2015/07/17 Python
详解Python绘图Turtle库
2019/10/12 Python
python的json中方法及jsonpath模块用法分析
2019/12/06 Python
python opencv圆、椭圆与任意多边形的绘制实例详解
2020/02/06 Python
关于TensorFlow新旧版本函数接口变化详解
2020/02/10 Python
TensorFlow中如何确定张量的形状实例
2020/06/23 Python
keras实现VGG16 CIFAR10数据集方式
2020/07/07 Python
如何基于matlab相机标定导出xml文件
2020/11/02 Python
基于python模拟bfs和dfs代码实例
2020/11/19 Python
利用Python实现自动扫雷小脚本
2020/12/17 Python
HTML5制作表格样式
2016/11/15 HTML / CSS
J2ee常用的设计模式?说明工厂模式
2015/05/21 面试题
如何将一个描述日期或日期/时间的字符串转换为一个Date对象
2015/10/13 面试题
保安拾金不昧表扬信
2014/01/15 职场文书
房屋出售协议书
2014/04/10 职场文书
材料专业大学毕业生自荐书
2014/07/02 职场文书
公安民警正风肃纪剖析材料
2014/10/10 职场文书
社区安置帮教工作总结2015
2015/05/20 职场文书
基于Python编写一个监控CPU的应用系统
2022/06/25 Python