使用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 相关文章推荐
pygame学习笔记(1):矩形、圆型画图实例
Apr 15 Python
Python递归遍历列表及输出的实现方法
May 19 Python
浅谈python for循环的巧妙运用(迭代、列表生成式)
Sep 26 Python
python Pandas 读取txt表格的实例
Apr 29 Python
Python判断一个文件夹内哪些文件是图片的实例
Dec 07 Python
Django数据库连接丢失问题的解决方法
Dec 29 Python
python使用selenium登录QQ邮箱(附带滑动解锁)
Jan 23 Python
django rest framework vue 实现用户登录详解
Jul 29 Python
适合Python初学者的一些编程技巧
Feb 12 Python
Python select及selectors模块概念用法详解
Jun 22 Python
Python之字典添加元素的几种方法
Sep 30 Python
Python中time与datetime模块使用方法详解
Mar 31 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 变量未定义等错误的解决方法
2011/01/12 PHP
php中引用符号(&)的使用详解
2013/11/13 PHP
列举PHP的Yii 2框架的开发优势
2015/07/03 PHP
PHP HTTP 认证实例详解
2016/11/03 PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
2020/04/27 PHP
juqery 学习之三 选择器 子元素与表单
2010/11/25 Javascript
10款新鲜出炉的 jQuery 插件(Ajax 插件,有幻灯片、图片画廊、菜单等)
2011/06/08 Javascript
Nodejs Express4.x开发框架随手笔记
2015/11/23 NodeJs
AngularJs 60分钟入门基础教程
2016/04/03 Javascript
JS模拟bootstrap下拉菜单效果实例
2016/06/17 Javascript
js通过keyCode值判断单击键盘上某个键,然后触发指定的事件方法
2017/02/19 Javascript
基于JavaScript实现的折半查找算法示例
2017/04/14 Javascript
vue 中引用gojs绘制E-R图的方法示例
2018/08/24 Javascript
Vue.js子组件向父组件通信的方法实例代码详解
2018/12/10 Javascript
微信小程序实现点击空白隐藏的方法示例
2019/08/13 Javascript
JavaScript实现多层颜色选项卡嵌套
2020/09/21 Javascript
[01:17:55]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
Python中Class类用法实例分析
2015/11/12 Python
想学python 这5本书籍你必看!
2018/12/11 Python
对Python的zip函数妙用,旋转矩阵详解
2018/12/13 Python
Python threading的使用方法解析
2019/08/28 Python
python框架flask入门之环境搭建及开启调试
2020/06/07 Python
python与js主要区别点总结
2020/09/13 Python
深入剖析webstorage[html5的本地数据处理]
2016/07/11 HTML / CSS
html5使用html2canvas实现浏览器截图的示例
2017/08/31 HTML / CSS
达拉斯牛仔官方商店:Dallas Cowboys Pro Shop
2018/02/10 全球购物
"序列点" 是什么
2016/07/29 面试题
会展中心部门工作职责
2013/11/27 职场文书
如何写好优秀的创业计划书
2014/01/30 职场文书
违反校纪校规检讨书
2014/02/15 职场文书
聚美优品的广告词
2014/03/14 职场文书
2014年就业工作总结
2014/11/26 职场文书
2014年青年志愿者工作总结
2014/12/09 职场文书
奖学金感谢信
2015/01/21 职场文书
职场干货:简历中的自我评价应该这样写!
2019/05/06 职场文书
js不常见操作运算符总结
2021/11/20 Javascript