使用Nibabel库对nii格式图像的读写操作


Posted in Python onJuly 01, 2020

因为后期主要的研究方向是医学图像处理,而现有手头的大部分数据都是nii格式或者是hdr,img格式的数据,所以首先第一步我们需要解决图像的读写问题。

其实使用OpenCV也可以方便的进行图像读取,但是这里暂时只学习Nibabel这个库,后面有时间的话再研究OpenCV在python中的使用。

Nibabel的安装

可以通过pip进行安装

pip install nibabel

简单的图像读取和存储操作

import os
import nibabel as nib

# 读取图像
path='C:\Users\Darren\Desktop\example.nii.gz'
img=nib.load(path)
# 查看图像的长宽高
img.shape
# 图像进行仿射变换
img.affine.shape
# 保存图像
path_save='C:\Users\Darren\Desktop\example_save.nii.gz'

img.to_filename(path_save)
或者
nib.save(img,path_save)

补充知识:使用SimpleITK读取NII格式三维图像注意事项

SimpleITK

Python中SimpleITK被广泛用于医学图像的处理任务中,功能非常强大,但是使用的时候还需注意,尤其在图像读取时一定要注意维度。

读取NII格式的图像

#读取并显示NII图像文件
from matplotlib import pyplot as plt
import SimpleITK as sitk

img_path = 'res.nii.gz'
I = sitk.ReadImage(img_path)
img = sitk.GetArrayFromImage(I)
plt.imshow(img[1,...], cmap='gray', interpolation='bicubic')
plt.xticks([]), plt.yticks([]) and Y axis
plt.show()

上面的代码很简单,不多做解释,加入我们在最后加上

print(img.shape)

如果输出(300,200,120),其中分别表示该三维体数据在Z轴,Y轴,X轴上的尺寸,这和MATLAB以及ImageJ都有点不同,后续处理一定要注意。

以上这篇使用Nibabel库对nii格式图像的读写操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python fileinput模块使用实例
Jun 03 Python
python学习之面向对象【入门初级篇】
Jan 21 Python
python使用锁访问共享变量实例解析
Feb 08 Python
python中(str,list,tuple)基础知识汇总
Feb 20 Python
基于python进行桶排序与基数排序的总结
May 29 Python
Python实现带下标索引的遍历操作示例
May 30 Python
使用pyinstaller打包PyQt4程序遇到的问题及解决方法
Jun 24 Python
django框架两个使用模板实例
Dec 11 Python
Python GUI库PyQt5样式QSS子控件介绍
Feb 25 Python
python with语句的原理与用法详解
Mar 30 Python
Python求凸包及多边形面积教程
Apr 12 Python
python中get和post有什么区别
Jun 19 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
浅谈TensorFlow之稀疏张量表示
Jun 30 #Python
tensorflow图像裁剪进行数据增强操作
Jun 30 #Python
You might like
解析WordPress中函数钩子hook的作用及基本用法
2015/12/22 PHP
php实现微信公众号企业转账功能
2018/10/01 PHP
Laravel-添加后台模板AdminLte的实现方法
2019/10/08 PHP
Javascript生成json的函数代码(可以用php的json_decode解码)
2012/06/11 Javascript
使用jquery hover事件实现表格的隔行换色功能示例
2013/09/03 Javascript
node.js中的fs.rmdir方法使用说明
2014/12/16 Javascript
两种方法解决javascript url post 特殊字符转义 + & #
2016/04/13 Javascript
基于jQuery实现表格的查看修改删除
2016/08/01 Javascript
同步文本框内容JS代码实现
2016/08/04 Javascript
JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8
2017/06/23 Javascript
基于jQuery Easyui实现登陆框界面
2017/07/10 jQuery
VUE2.0+Element-UI+Echarts封装的组件实例
2018/03/02 Javascript
angularjs结合html5实现拖拽功能
2018/06/25 Javascript
vue.js 实现点击展开收起动画效果
2018/07/07 Javascript
微信小程序自定义组件之可清除的input组件
2018/07/17 Javascript
解决angular2 获取到的数据无法实时更新的问题
2018/08/31 Javascript
js全屏事件fullscreenchange 实现全屏、退出全屏操作
2019/09/17 Javascript
vue路由守卫,限制前端页面访问权限的例子
2019/11/11 Javascript
python解决汉字编码问题:Unicode Decode Error
2017/01/19 Python
Python cookbook(数据结构与算法)对切片命名清除索引的方法
2018/03/13 Python
对python中if语句的真假判断实例详解
2019/02/18 Python
怎么快速自学python
2020/06/22 Python
中国领先的专业家电网购平台:国美在线
2016/12/25 全球购物
纽约复古灵感的现代珠宝品牌:Lulu Frost
2018/03/03 全球购物
菲律宾票务网站:StubHub菲律宾
2018/04/21 全球购物
电脑教师的教学自我评价
2013/11/26 职场文书
优秀研究生自我鉴定
2013/12/04 职场文书
平面网站制作专科生的自我评价分享
2013/12/11 职场文书
大三学生入党思想汇报
2014/01/02 职场文书
入党积极分子自我鉴定
2014/02/18 职场文书
工作决心书范文
2014/03/11 职场文书
认购协议书范本
2014/04/22 职场文书
公司委托书怎么写
2014/08/02 职场文书
争先创优心得体会
2014/09/12 职场文书
股份转让协议书范本
2015/01/27 职场文书
Nginx开启Brotli压缩算法实现过程详解
2021/03/31 Servers