mat转换png

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')  # 保存图片
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值