npy转换为png和nii文件

本文最后更新于:2023年4月7日 下午

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#coding:utf-8
import matplotlib.pyplot as plt
import numpy as np
import os
from skimage.transform import resize
from glob import glob
import SimpleITK as sitk
file_dir = r"D:\MyData\3Dircadb1_fusion_date\npy\train_image\*" # npy文件路径
dest_dir = r"D:\MyData\3Dircadb1_fusion_date\png" # 文件存储的路径


def npy_png(file_dir, dest_dir):
# 如果不存在对应文件,则创建对应文件
if not os.path.exists(dest_dir):
os.makedirs(dest_dir)
path = glob(file_dir)
k=0
for file in path:
arr = np.load(file)
z = arr.shape[0] # 获取Z轴大小
k += 1
for i in range(z-1): # 因为是npy是三维的,但是png二维显示,所以我按照Z轴切片进行保存展示
arr1 = arr[i:i+1,...] #每次增长1 slice
arr2 = arr1[0, ...] # 将其转换为两维,因为Z轴当前为1,可以省略。
disp_to_img = resize(arr2, [128, 128])
plt.imsave(os.path.join(dest_dir, "{}_{}_disp.png".format(k,i)), disp_to_img, cmap='plasma') # 定义命名规则,保存图片为彩色模式
## npy文件转换为nii文件
# sitk_img = sitk.GetImageFromArray(arr, isVector=False)
# sitk.WriteImage(sitk_img, os.path.join(dest_dir, str(i) + ".nii"))
# print('file_name:{}'.format(file))


if __name__ == "__main__":
npy_png(file_dir, dest_dir)

打赏支持
“如果你觉得我的文章不错,不妨鼓励我继续写作。”

npy转换为png和nii文件
https://dreamoneyou.github.io/2022/npy转换为png和nii文件/
作者
九叶草
发布于
2022年2月25日
更新于
2023年4月7日
许可协议