python - 如何将 nift 文件夹转换为 png 图像?
问题描述
*图书馆
有一个从 NumPy 和 imageio 导入的最知名的库 import NumPy as np import os import nibabel as nib import imageio // 方法我在其中编写代码将 nift 转换为 png
方法 将 nift(.nii) 图像转换为 png 图像def nii_to_image(niifile): filenames = os.listdir(filepath) #读取nii文件夹 slice_trans = [] #filename是nii图片的路径
for f in filenames:
#Start reading nii files
img_path = os.path.join(filepath, f)
img = nib.load(img_path) #read nii
img_fdata = img.get_fdata()
fname = f.replace('.nii','')
# Remove the nickname of nii
img_f_path = os.path.join(imgfile, fname)
#Create a folder corresponding to the image of nii
if not os.path.exists(img_f_path):
os.mkdir(img_f_path) #New folder
# to image
(x,y,z) = img.shape
for i in range(z): #x is the sequence of images
silce = img_fdata[i, :, :] #Select which direction the slice can be
imageio.imwrite(os.path.join(img_f_path,'{}.png'.format(i)), silce) #Save image
#main function where fill path was gived
主要的
if __name__ == '__main__':
filepath = '/content/drive/MyDrive/sem 8/dataset/pr'
imgfile = '/content/drive/MyDrive/sem 8/dataset/propi'
nii_to_image(filepath)
解决方案
像您一样将 nifti 文件加载为 NumPy 数组后,在每个切片(来自 img.shape 的 z)上运行,然后将数组保存到 png。
确保在每个切片上运行时只保存现有切片(z_slice_number):
slice = img_fdata[:, :, z_slice_numer]
要保存此切片,您可以执行以下操作(或此处的其他方式):
matplotlib.image.imsave('name.png', slice)
推荐阅读
- javascript - 将别名变量分配给新对象
- c# - 在 postgresql 中处理 json 数据类型时如何修复“序列不包含匹配元素”
- html - HTML 和 CSS:在无序列表中显示活动项目
- c++ - 使用CMAKE生成Visual Studio 2019 ARM项目文件
- android - Google Ads 在真实设备中使用一段时间后突然变为空白
- node.js - 如何使用节点js重命名mongodb中的列名
- php - 在 woocommerce_checkout_create_order_line_item 挂钩上获取产品数据
- java - 如何在 xml 配置文件中指定 spring 处理程序拦截器的顺序?
- excel - 如何仅偏移可见单元格
- visual-studio-code - 踢和禁止命令不再适用于我,即使我没有改变它