网络编程
位置:首页>> 网络编程>> Python编程>> python如何将mat文件转为png

python如何将mat文件转为png

作者:马鹏森  发布时间:2023-04-14 07:37:21 

标签:python,mat文件,png

将mat文件转为png

花费了很大力气做这件事,总是出现各种错误,现在终于解决了

from PIL import Image
import matplotlib.pyplot as plt
import glob
import os
import numpy as np
import mat73

# 数据矩阵转图片的函数
def MatrixToImage(data):
   data = data*255
   new_im = Image.fromarray(data.astype(np.uint8))
   return new_im

def mkdir(path):
   folder = os.path.exists(path)
   if not folder:  # 判断是否存在文件夹如果不存在则创建为文件夹
       os.makedirs(path)  # makedirs 创建文件时如果路径不存在会创建这个路径
       print("--- create new folder...  ---")
   else:
       print("---  There is this folder!  ---")

# Get all png files under the input folder
input_img_path = glob.glob("I:/CCCC--数据集/去噪/dnd_2017/input/*.mat")
save_path = "blur13x13/"

mkdir(save_path)  # 调用函数
i = 0

for file in input_img_path:
   file_name = file.split('\\')[-1]

try:
       mat = mat73.loadmat(file)
       new_name = str(mat.keys())
       key_name = list(mat.keys())[-1]
       key_name = mat[key_name]
       print(key_name.shape)
       new_im = MatrixToImage(key_name)
       plt.imshow(key_name,  interpolation='nearest')
       new_im.save(save_path+'{}.png'.format(file_name))
   except Exception as e:
       pass

i = i + 1
   print("The", i, "picture is currently being processed")
   continue

完整代码如上,只需要修改输入的mat文件夹路径即可~

将图片转换为mat格式

import cv2
import numpy as np
import h5py
import math
import glob
import os
import scipy.io as io
?
def save_to_mat(img,output_name):
? ? new_data_path = os.path.join(os.getcwd(),"matType")
? ? if not os.path.isdir(new_data_path):
? ? ? ? os.mkdir(new_data_path)
? ? npy_data = np.array(img,dtype= "uint16")
? ? np.save(new_data_path+'/{}.npy'.format(output_name),npy_data)
? ? npy_load = np.load(new_data_path+'/{}.npy'.format(output_name))
? ? io.savemat(new_data_path+'/{}.mat'.format(output_name),{'data':npy_load})

来源:https://blog.csdn.net/weixin_43135178/article/details/123471749

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com