npy轉換為png和nii文件


#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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM