使用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 psutil模块简单使用实例
Apr 28 Python
解决Linux系统中python matplotlib画图的中文显示问题
Jun 15 Python
python类的方法属性与方法属性的动态绑定代码详解
Dec 27 Python
解决Pycharm无法import自己安装的第三方module问题
May 18 Python
python字典值排序并取出前n个key值的方法
Oct 17 Python
Python----数据预处理代码实例
Mar 20 Python
python之生成多层json结构的实现
Feb 27 Python
Python进程间通信multiprocess代码实例
Mar 18 Python
如何基于Python爬取隐秘的角落评论
Jul 02 Python
python使用yaml 管理selenium元素的示例
Dec 01 Python
浅谈Python数学建模之数据导入
Jun 23 Python
Python基本数据类型之字符串str
Jul 21 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
PHP转换IP地址到真实地址的方法详解
2013/06/09 PHP
深入解析PHP的引用计数机制
2013/06/14 PHP
PHP设置一边执行一边输出结果的代码
2013/09/30 PHP
浅谈ThinkPHP的URL重写
2014/11/25 PHP
php的4种常用运行方式详解
2016/12/22 PHP
JS等比例缩小图片尺寸的实例
2013/02/27 Javascript
JavaScript 函数惰性载入的实现及其优点介绍
2013/08/12 Javascript
jquery文本框中的事件应用以输入邮箱为例
2014/05/06 Javascript
JavaScript实现将xml转换成html table表格的方法
2015/04/17 Javascript
JS数字抽奖游戏实现方法
2015/05/04 Javascript
jQuery带时间的日期控件代码分享
2015/08/26 Javascript
JS模拟酷狗音乐播放器收缩折叠关闭效果代码
2015/10/29 Javascript
Winform客户端向web地址传参接收参数的方法
2016/05/17 Javascript
JavaScript数组的栈方法与队列方法详解
2016/05/26 Javascript
JavaScript的字符串方法汇总
2016/07/31 Javascript
jQuery Validate 数组 全部验证问题
2017/01/12 Javascript
jQuery居中元素scrollleft计算方法示例
2017/01/16 Javascript
浅谈JS如何实现真正的对象常量
2017/06/25 Javascript
小程序ios音频播放没声音问题的解决
2018/07/11 Javascript
微信小程序地图绘制线段并且测量(实例代码)
2020/01/02 Javascript
JavaScript图片旋转效果实现方法详解
2020/06/28 Javascript
Python抓取百度查询结果的方法
2015/07/08 Python
使用python采集脚本之家电子书资源并自动下载到本地的实例脚本
2018/10/23 Python
pygame实现飞机大战
2020/03/11 Python
matplotlib之多边形选区(PolygonSelector)的使用
2021/02/24 Python
CSS3中的display:grid,网格布局介绍
2019/10/30 HTML / CSS
关于HTML5的22个初级技巧(图文教程)
2012/06/21 HTML / CSS
Abbott Lyon官网:女士手表、珠宝及配件
2020/12/26 全球购物
澳大利亚领先的在线礼品网站:Gifts Australia
2020/08/15 全球购物
视光学专业毕业生推荐信
2013/10/28 职场文书
百度吧主申请感言
2014/01/12 职场文书
行政求职信
2014/07/04 职场文书
老干部工作先进事迹
2014/08/17 职场文书
五一劳动节演讲稿
2014/09/12 职场文书
2015自愿离婚协议书范本
2015/01/28 职场文书
2015年度个人工作总结报告
2015/10/24 职场文书