读取nii或nii.gz文件中的信息即输出图像操作

 更新时间:2020年07月01日 10:13:47   作者:无宠不惊过一生  
这篇文章主要介绍了读取nii或nii.gz文件中的信息即输出图像操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

读取nii或者nii.gz文件中的信息,并且输出图像。

import matplotlib
from matplotlib import pylab as plt
import nibabel as nib
from nibabel.viewers import OrthoSlicer3D
file = '' #你的nii或者nii.gz文件路径
img = nib.load(file) 
 
print(img)
print(img.header['db_name']) #输出nii的头文件
width, height, queue = img.dataobj.shape
OrthoSlicer3D(img.dataobj).show()
 
num = 1
for i in range(0, queue, 10):
 img_arr = img.dataobj[:,:,i]
 plt.subplot(5,4,num)
 plt.imshow(img_arr, cmap='gray')
 num += 1
 
plt.show()

补充知识:SimpleITK读取医学图像 .nii 数据(2D显示)

【环境】win10 + python3.6 + SimpleITK

nii文件是NIFTI格式的文件,出现的原因是原来一种图像格式是ANALYZE 7.5 format,但是这个图像格式缺少一些信息,比如没有方向信息,病人的左右方位等,如果需要包括额外的信息,就需要一个额外的文件,比如ANALYZE7.5就需要一对<.hdr, .img>文件来保存图像的完整信息。

因此,解决这个问题Data Format Working Group (DFWG) 将图像格式完整的定义为NIFTI(Neuroimaging Informatics Technology Initiative)格式

import SimpleITK as sitk
import skimage.io as io

def read_img(path):
 img = sitk.ReadImage(path)
 data = sitk.GetArrayFromImage(img)
 return data
#显示一个系列图
def show_img(data):
 for i in range(data.shape[0]):
  io.imshow(data[i,:,:], cmap = 'gray')
  print(i)
  io.show()
 
#单张显示
def show_img(ori_img):
 io.imshow(ori_img[100], cmap = 'gray')
 io.show()

#window下的文件夹路径 
path = 'D:\\datasets\\Naso_GTV\\1\\data.nii.gz'
data = read_img(path)
show_img(data)

img = sitk.ReadImage(path)
#查看图片深度
print(img.GetDepth())
#144 共144张图
#查看Size
print(img.GetSize())
#(512,512,144) 像素:512*512, 144张图片

更多的函数自己去发现

以上这篇读取nii或nii.gz文件中的信息即输出图像操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python中json.load()和json.loads()有哪些区别

    Python中json.load()和json.loads()有哪些区别

    json.loads()用于解析一个有效的JSON字符串并将其转换为Python字典,json.load——()用于从一个文件读取JSON类型的数据,然后转转换成Python字典,本文讲解下python中两者的使用
    2021-06-06
  • pytorch模型训练的时候GPU使用率不高的问题

    pytorch模型训练的时候GPU使用率不高的问题

    这篇文章主要介绍了pytorch模型训练的时候GPU使用率不高的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Python 深入了解opencv图像分割算法

    Python 深入了解opencv图像分割算法

    本文主要介绍了Python通过opencv实现图像分割的详细过程与代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-11-11
  • 学习python之编写简单乘法口诀表实现代码

    学习python之编写简单乘法口诀表实现代码

    这篇文章主要介绍了学习python之编写简单乘法口诀表实现代码,需要的朋友可以参考下
    2016-02-02
  • Python操作MySQL数据库的方法

    Python操作MySQL数据库的方法

    pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。接下来通过本文给大家介绍Python操作MySQL数据库的方法,感兴趣的朋友一起看看吧
    2018-06-06
  • 利用Python自动化生成爱豆日历详解

    利用Python自动化生成爱豆日历详解

    openpyxl,一个能读取和修改Excel电子表格的Pyhton模块,可以实现自动化处理表格信息,摆脱无趣无味。本文将利用openpyxl和calendar库,实现自动化生成爱豆日历,感兴趣的可以了解一下
    2022-05-05
  • 四种Python机器学习超参数搜索方法总结

    四种Python机器学习超参数搜索方法总结

    在建模时模型的超参数对精度有一定的影响,而设置和调整超参数的取值,往往称为调参。本文将演示在sklearn中支持的四种基础超参数搜索方法,需要的可以参考一下
    2022-11-11
  • 简单解决Python文件中文编码问题

    简单解决Python文件中文编码问题

    这篇文章主要介绍了简单解决Python文件中文编码问题的相关资料,需要的朋友可以参考下
    2015-11-11
  • Python的Django框架可适配的各种数据库介绍

    Python的Django框架可适配的各种数据库介绍

    这篇文章主要介绍了Python的Django框架可适配的各种数据库,简单总结为就是流行的几种数据库Python基本上全部能用XD 需要的朋友可以参考下
    2015-07-07
  • Python将数据生成二维码的四种方法实例代码

    Python将数据生成二维码的四种方法实例代码

    二维码在日常生活中非常常见,广泛应用于支付、登录验证、信息分享等场景,下面这篇文章主要给大家介绍了关于Python将数据生成二维码的四种方法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-09-09

最新评论