因为后期主要的研究方向是医学图像处理,而现有手头的大部分数据都是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格式图像的读写操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

matlab对nii文件处理,使用Nibabel库对nii格式图像的读写操作相关推荐

  1. 利用MATLAB读取.nc文件单像元数值并转为Excel格式(以中国日降雨量月均数据为例)

    以中国日降雨量月均数据(nc文件包含12月)为例,提取某经纬度下的多月份像元值. ([数据分享]1960-2020年中国1公里分辨率月降水数据集) 一.确定经纬度所在行列号 以92.18E,30.47 ...

  2. 如何处理.nii文件

    最近读了一篇论文[1],是利用深度学习进行MRI图像重建的,作者在github[2]上提供给我们的他的实现代码,他使用的一个MRI分割比赛的数据集[3],但是将数据集下载下来发现全部都是.nii格式的 ...

  3. nii文件python可视化并转化为gif

    今儿刚好用的医学图像处理,看了一些博客,就封装了一下,把三维nii ,转化为 gif,懒得废话了,直接看代码的注释吧: import cv2 import nibabel as nib import ...

  4. python读取nii文件_python实现批量nii文件转换为png图像

    之前介绍过单个nii文件转换成png图像: 这里介绍将多个nii文件(保存在一个文件夹下)转换成png图像.且图像单个文件夹的名称与nii名字相同. import numpy as np import ...

  5. 全网最详细 Python如何读取NIFTI格式图像(.nii文件)和 .npy格式文件和pkl标签文件内容

    在医学图像处理中,我们经常使用一种NIFTI格式图像(.nii文件),现在我们来看看 什么是.nii文件? 该如何读取.nii文件? 1. NIFTI格式图像 什么是NIFTI(Neuroimagin ...

  6. 批量nii文件转换为png图像

    之前介绍过单个nii文件转换成png图像: https://blog.csdn.net/weixin_43330946/article/details/89501865 这里介绍将多个nii文件(保存 ...

  7. 关于.nii文件的一些处理函数

    图像处理tool 寒假的时候主要用到的工具是SimpleITK这个python库,可以直接在pytorch中找到下载 nii文件 相信大家已经了解了nii文件,我个人的理解,nii文件就是dicom文 ...

  8. Python文件的读写操作

    使用Python编程时,经常会遇到读写文件的操作.对于读写文件的各种模式(如阅读.写入.追加等)有时真的会迷惑人,以及搞不清open.read.readline.readlines.write.wri ...

  9. python 笔记:打开nii格式(nibabel 库)

    1 nii格式介绍 1.0 Analyze 格式 在解释NII(NIFTI,neuroimaging information technology initiative)格式之前,我们需要先知道一下A ...

最新文章

  1. 使用LM2576制作数控电源
  2. Web.xml配置详解之context-param
  3. 第一方Cookie和第三方Cookie
  4. mariadb(mysql)的安装
  5. centos下添加管理员组和添加管理员用户及相关操作
  6. BZOJ 3720: Gty的妹子树 [树上size分块]
  7. java中int和integer的区别_Java异常中throw和throws关键字的区别
  8. CoreJavaE10V1P3.2 第3章 Java的基本编程结构-3.2 注释
  9. Delphi 重启应用程序
  10. 智钜科技解读:单轨,双轨,多轨,三三复制的区别
  11. 服务器怎么修改远程桌面端口号,windows系统如何修改默认的远程桌面端口 如何更改服务器远程端口...
  12. 中文的括号和英文的括号区别_易混标点符号:中英文冒号(:、:)、比号(∶)...
  13. 【算法+LeetCode题解+剑指Offer题解】算法思想、排序搜索、数据结构、数学、特殊解法、设计(全总结)
  14. 细胞亚器文献阅读二~An ER-Mitochondria Tethering Complex Revealed by a Synthetic Biology Screen
  15. 计算机电缆能代替控制电缆吗,如何区分:计算机电缆与控制电缆!
  16. prometheus数据采集
  17. 语音信号短时域分析之短时平均能量(四)
  18. java-SpringBoot-oracle配置【自用】
  19. 最新手机号验证正则表达式(电信、移动、广电号段)
  20. 如何用vscode调试ts代码

热门文章

  1. 自定义标签JSTL标签库详解
  2. android popupmenu icon,带有图标的PopupMenu
  3. 科大星云诗社动态20201230
  4. 安装win7和ubuntu双系统
  5. 基于阿里云 MaxCompute 构建企业云数据仓库CDW的最佳实践建议
  6. oracle 创建序列,触发器,实现字段自增长
  7. java drawstring 字体_Java AWT Graphics改变了drawString()的背景颜色
  8. assignfile用法
  9. Neural Machine Translation With PyTorch
  10. java死锁如何排查