1. 程式人生 > 其它 >nii格式影象轉為png,並重命名

nii格式影象轉為png,並重命名

資料夾格式:nii

輸出格式:png,並重命名

將資料夾裡的檔案拆出來:

for /f "delims=" %%p in ('dir /b/ad') do copy %%p\*.* D:\test\test0_disease_png\
pause

import numpy as np
import os # 遍歷資料夾
import nibabel as nib # nii格式一般都會用到這個包
import imageio # 轉換成影象

def rename(imgfile):
#rootDir = imgfile
for root, dirs, files in os.walk(imgfile):
path = root
print(path)
for f in files:
os.rename(path + os.sep + f, path + os.sep + os.path.basename(path) + f)

def nii_to_image(niifile):
filenames = os.listdir(filepath) # 讀取nii資料夾
slice_trans = []

for f in filenames:
# 開始讀取nii檔案
img_path = os.path.join(filepath, f)
img = nib.load(img_path) # 讀取nii
img_fdata = img.get_fdata()
fname = f.replace('.nii.gz', '') # 去掉nii的字尾名,替換成空的即為資料夾
img_f_path = os.path.join(imgfile, fname)

# 建立nii對應的影象的資料夾
if not os.path.exists(img_f_path):
os.mkdir(img_f_path) # 新建資料夾

# 開始轉換為影象
(x, y, z) = img.shape

for i in range(z): # z是影象的序列
silce = img_fdata[:, :, i] # 選擇哪個方向的切片都可以
# imageio.imwrite(os.path.join(img_f_path,'{}.png'.format(i)), silce)
imageio.imwrite(os.path.join(img_f_path, '{}.png'.format(i)), silce)

# 儲存影象


if __name__ == '__main__':
filepath = 'D:\mask\\test0'
imgfile = 'D:\\test\\test0_disease'
nii_to_image(filepath)
rename(imgfile)

本文來自部落格園,作者:程式設計coding小白,轉載請註明原文連結:https://www.cnblogs.com/zhenhua1203/p/15533777.html