使用Nibabel库对nii格式图像的读写操作
因为后期主要的研究方向是医学图像处理,而现有手头的大部分数据都是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实现批量nii文件转换为png图像
之前介绍过单个nii文件转换成png图像: https://www.jb51.net/article/165693.htm 这里介绍将多个nii文件(保存在一个文件夹下)转换成png图像.且图像单个文件夹的名称与nii名字相同. import numpy as np import os #遍历文件夹 import nibabel as nib #nii格式一般都会用到这个包 import imageio #转换成图像 def nii_to_image(niifile): filenames =
-
Pytorch 使用 nii数据做输入数据的操作
使用pix2pix-gan做医学图像合成的时候,如果把nii数据转成png格式会损失很多信息,以为png格式图像的灰度值有256阶,因此直接使用nii的医学图像做输入会更好一点. 但是Pythorch中的Dataloader是不能直接读取nii图像的,因此加一个CreateNiiDataset的类. 先来了解一下pytorch中读取数据的主要途径--Dataset类.在自己构建数据层时都要基于这个类,类似于C++中的虚基类. 自己构建的数据层包含三个部分 class Dataset(object
-
Ubuntu+python将nii图像保存成png格式
这里介绍一个nii文件保存为png格式的方法. 这篇文章是介绍多个nii文件保存为png格式的方法: https://www.jb51.net/article/165692.htm 系统:Ubuntu 16.04 软件: python 3.5 先用pip安装nibabel.numpy.imageio.os. import nibabel as nib import numpy as np import imageio import os def read_niifile(niifile): #读
-
使用Nibabel库对nii格式图像的读写操作
因为后期主要的研究方向是医学图像处理,而现有手头的大部分数据都是nii格式或者是hdr,img格式的数据,所以首先第一步我们需要解决图像的读写问题. 其实使用OpenCV也可以方便的进行图像读取,但是这里暂时只学习Nibabel这个库,后面有时间的话再研究OpenCV在python中的使用. Nibabel的安装 可以通过pip进行安装 pip install nibabel 简单的图像读取和存储操作 import os import nibabel as nib # 读取图像 path='C:
-
python 读取.nii格式图像实例
我就废话不多说了,大家还是直接看代码吧~ # encoding=utf8 ''' 查看和显示nii文件 ''' import matplotlib matplotlib.use('TkAgg') from matplotlib import pylab as plt import nibabel as nib from nibabel import nifti1 from nibabel.viewers import OrthoSlicer3D example_filename = '../AD
-
使用Python解决常见格式图像读取nii,dicom,mhd
目录 1. raw,mhd 格式医学图像数据转换 2. dicom格式医学图像数据转换 3. nii格式医学图像转换 1. raw,mhd 格式医学图像数据转换 raw+mhd格式是常见的一种医学图像格式,每一个病人的数据包含一个mhd文件和一个同名的raw文件,mhd即meta header data,数据头部信息,而raw存储了像素信息.方法需要使用的SimpleITK库,我们需要在自己的Python环境中安装对应的库 pip install SimpleITK mhd+raw的数据往往是三
-
利用python实现.dcm格式图像转为.jpg格式
如下所示: import pydicom import matplotlib.pyplot as plt import scipy.misc import pandas as pd import numpy as np import os def Dcm2jpg(file_path): #获取所有图片名称 c = [] names = os.listdir(file_path) #路径 #将文件夹中的文件名称与后边的 .dcm分开 for name in names: index = name.
-
.img/.hdr格式转.nii格式的操作
MATLAB转格式,需要使用spm package(https://github.com/neurodebian/spm12). %%img2nii.m-------------------------------------------- %Script to convert hdr/img files to nii. %This script uses SPM function, so you need to install SPM5 or later. %Kiyotaka Nemoto 0
-
利用Python NumPy库及Matplotlib库绘制数学函数图像
目录 前言 NumPy与Matplotlib 函数绘图 所需库函数语法 导入所需模块 一元一次函数 一元二次函数 指数函数 正弦函数 余弦函数 高级玩法 总结 前言 最近开始学习数学了,有一些题目的函数图像非常有特点,有一些函数图像手绘比较麻烦,那么有没有什么办法做出又标准又好看的数学函数图像呢? 答案是有很多的,有很多不错的软件都能画出函数图像,但是,我想到了Python的数据可视化.Python在近些年非常火热,在数据分析以及深度学习等方面得到广泛地运用,其丰富的库使其功能愈加强大. 这里我
-
Python使用cx_Freeze库生成msi格式安装文件的方法
本文实例讲述了Python使用cx_Freeze库生成msi格式安装文件的方法.分享给大家供大家参考,具体如下: ①.需要在目录下面创建一个文件 .setup.py ②.写入代码: import sys from cx_Freeze import setup, Executable import os os.environ['TCL_LIBRARY'] = r'C:\Python36-32\tcl\tcl8.6' os.environ['TK_LIBRARY'] = r'C:\Python36-
-
C++实现bmp格式图像读写
bmp格式图像有一个特点就是这类数据被分为四个部分: 1.位图文件头(Bitmap File Header) ,大小:14字节 主要包括位图文件大小和位图文件类型信息 2.位图信息头(Bitmap Info Header),大小:40字节 主要包括:位图的宽度和高度,像素为单位.每个像素所占位数(1黑白图像),(4-16色图).(8-256色图).(24-真彩色图),新的BMP格式可以支持32位色. 还有其它水平和垂直分辨力(单位:像素/米)等 3.颜色表(Color Map),大小:4个字节
-
Python图像滤波处理操作示例【基于ImageFilter类】
本文实例讲述了Python图像滤波处理操作.分享给大家供大家参考,具体如下: 在图像处理中,经常需要对图像进行平滑.锐化.边界增强等滤波处理.在使用PIL图像处理库时,我们通过Image类中的成员函数filter()来调用滤波函数对图像进行滤波,而滤波函数则通过ImageFilter类来定义的. 下面先直接看一个样例: #-*- coding: UTF-8 -*- from PIL import Image from PIL import ImageFilter def image_filter
随机推荐
- Prototype使用指南之selector.js说明
- 详解Lua中repeat...until循环语句的使用方法
- vbs中Empty和Null的区别
- Linux进程基础教程详解
- python实现ftp客户端示例分享
- 解决iframe的frameborder在chrome/ff/ie下的差异
- 写了个监控nginx进程的Python脚本
- easyui中combotree循环获取父节点至根节点并输出路径实现方法
- Java多线程基础 线程的等待与唤醒(wait、notify、notifyAll)
- jQuery中layer分页器的使用
- js实现的奥运倒计时时钟效果代码
- JQuery实现鼠标移动图片显示描述层的方法
- 原生javascript实现分页效果
- JavaScript实现动态增加文件域表单
- 非常不错的三种简洁的Tab导航(网页选项卡)简析
- Android ListView 条目多样式展示实例详解
- Android App中使用SurfaceView制作多线程动画的实例讲解
- 怎么锁定鼠标的示例代码分享
- andoid打包短信发送到gmail邮箱实现代码
- java中幂指数值的运算代码解析