import glob
import torch
import torch.nn.functional as F
import cv2
import json
from matplotlib import pyplot as plt
import SimpleITK as sitk
import pandas as pd
from pathlib import Path
import time
def load_tensor(file):
with open(file, "rb") as f:
binary_data = f.read()
magic_number, ndims, dtype = np.frombuffer(binary_data, np.uint32, count=3, offset=0)
assert magic_number == 0xFCCFE2E2, f"{file} not a tensor file."
dims = np.frombuffer(binary_data, np.uint32, count=ndims, offset=3 * 4)
if dtype == 0:
np_dtype = np.float32
elif dtype == 1:
np_dtype = np.float16
else:
assert False, f"Unsupport dtype = {dtype}, can not convert to numpy dtype"
# print(np.frombuffer(binary_data, np_dtype, offset=(ndims + 3) * 4).reshape(*dims))
return np.frombuffer(binary_data, np_dtype, offset=(ndims + 3) * 4).reshape(*dims)
#
file_path = r'C:\Users\320133514\Desktop\T1000\T1000-FP16'
p = Path(file_path)
# 所有以xlsx结尾的文件
for file in p.rglob('*.bin'):
# print(file)
c = load_tensor(file)
A = c.reshape(48, 320, 320)
img = A[24:48, 0:320, 0:320]
a = (img > 0.5).astype(np.float32)
# out = sitk.GetImageFromArray(a)
c = str(file)
# print(c)
path1 = c[44:57]
# print(path1)
path2 = 'C:\\Users\\320133514\\Desktop\\T1000\\16\\' + path1 +'_result.bin'
print(path2)
# sitk.WriteImage(out,path2)
a.tofile(path2)
批处理生成bin文件
最新推荐文章于 2024-02-29 23:41:27 发布