读取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使用xlrd模块操作Excel数据导入的方法
May 26 Python
Python生成数字图片代码分享
Oct 31 Python
对python 矩阵转置transpose的实例讲解
Apr 17 Python
python 多线程中子线程和主线程相互通信方法
Nov 09 Python
PyQt5实现QLineEdit添加clicked信号的方法
Jun 25 Python
python中hasattr()、getattr()、setattr()函数的使用
Aug 16 Python
python中用logging实现日志滚动和过期日志删除功能
Aug 20 Python
修改 CentOS 6.x 上默认Python的方法
Sep 06 Python
python线程信号量semaphore使用解析
Nov 30 Python
pyinstaller打包找不到文件的问题解决
Apr 15 Python
Python 实现敏感目录扫描的示例代码
May 21 Python
如何以Winsows Service方式运行JupyterLab
Aug 30 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作的文本留言本的例子(一)
2006/10/09 PHP
php printf输出格式使用说明
2010/12/05 PHP
PHP线程的内存回收问题
2016/07/08 PHP
PHP常量及变量区别原理详解
2020/08/14 PHP
原生js编写设为首页兼容ie、火狐和谷歌
2014/06/05 Javascript
解决自定义$(id)的方法与jquery选择器$冲突的问题
2014/06/14 Javascript
jQuery图片特效插件Revealing实现拉伸放大
2015/04/22 Javascript
AngularJS学习笔记之基本指令(init、repeat)
2015/06/16 Javascript
玩转NODE.JS(四)-搭建简单的聊天室的代码
2016/11/11 Javascript
JavaScript中匿名函数的递归调用
2017/01/22 Javascript
angularJs的ng-class切换class
2017/06/23 Javascript
Angular 2父子组件数据传递之局部变量获取子组件其他成员
2017/07/04 Javascript
select自定义小三角样式代码(实用总结)
2017/08/18 Javascript
微信小程序实现点击按钮修改文字大小功能【附demo源码下载】
2017/12/06 Javascript
完美解决mui框架off-canvas侧滑超出部分隐藏无法滚动的问题
2018/01/25 Javascript
layer.confirm点击第一个按钮关闭弹出框的方法
2019/09/09 Javascript
Quasar Input:type=&quot;number&quot; 去掉上下小箭头 实现加减按钮样式功能
2020/04/09 Javascript
在Python中使用列表生成式的教程
2015/04/27 Python
python写入xml文件的方法
2015/05/08 Python
python 实现在一张图中绘制一个小的子图方法
2019/07/07 Python
在Python中os.fork()产生子进程的例子
2019/08/08 Python
Django框架中间件定义与使用方法案例分析
2019/11/28 Python
使用Python-OpenCV消除图像中孤立的小区域操作
2020/07/05 Python
深入浅析Python代码规范性检测
2020/07/31 Python
python+selenium爬取微博热搜存入Mysql的实现方法
2021/01/27 Python
CSS3的Border-radius轻松制作圆角
2012/12/24 HTML / CSS
德国家具、照明、家居用品网上商店:Wayfair.de
2020/02/13 全球购物
设计师个人求职信范文
2014/02/02 职场文书
食堂厨师岗位职责
2014/08/25 职场文书
股份合作协议书
2014/09/10 职场文书
领导干部“四风”问题批评与自我批评材料
2014/09/24 职场文书
领导班子作风建设年个人整改措施
2014/09/29 职场文书
政风行风整改方案
2014/10/25 职场文书
法院执行局工作总结
2015/08/11 职场文书
教你用python实现12306余票查询
2021/06/30 Python
深入理解go缓存库freecache的使用
2022/02/15 Golang