import scipy.io as scio
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
import os
import h5py
file_dir = 'F:\\zxy\\MPRNet-main\\Denoising\\Datasets\\SIDD\\train\\SIDD_Medium_Raw\\Data\\'
file_list = os.listdir(file_dir)
data_list = []
for i in file_list:
data_list.append(file_dir+i)
path = 'F:\\zxy\\MPRNet-main\\Denoising\\Datasets\\SIDD\\mytrain\\'
for d in data_list:
data_dir = d
img_ids = sorted(os.listdir(d))
#print(len(img_ids))
for img_id in img_ids:
if 'METADATA' not in img_id:
dataFile = data_dir + "\\" + img_id # 单个的mat文件
print("data File {}".format(dataFile))
# data = scio.loadmat(dataFile)
# print(type(data))
# print (data['data'])
with h5py.File(dataFile, 'r') as f:
f = h5py.File(dataFile, 'r')
print(f.keys()) # <KeysViewHDF5 ['X', 'y']> 此处的keys返回的是view-like objects ,不是list
# print(f['x'][:])
# 由于导入的mat文件是structure类型的,所以需要取出需要的数据矩阵
a = f['x'][:]
# 取出需要的数据矩阵
# a = data['inst_map']
# 数据矩阵转图片的函数
def MatrixToImage(data):
data = data * 255
new_im = Image.fromarray(data.astype(np.uint8))
print("convert pic")
return new_im
print("33333333333333")
new_im = MatrixToImage(a)
# plt.imshow(a, cmap=plt.cm.gray, interpolation='nearest')
# new_im.show()
print(path + img_id[:-4] + '.png')
new_im.save(path + img_id[:-4] + '.png') # 保存图片
mat转换png
最新推荐文章于 2024-04-10 16:16:11 发布