遍历(1, 1, 256, 256, 3)维的mat文件中的每个文件夹并将其转换为png格式

本文介绍了如何使用Python和相关库(如scipy.io,PIL,numpy)读取MAT文件中的多维图像数据,将其转换为PNG格式,并保存到指定的文件夹结构中。代码示例展示了遍历文件夹、读取数据并进行格式转换的过程。
摘要由CSDN通过智能技术生成

要遍历形状为 (1, 1, 256, 256, 3) 的MAT文件中的每个文件夹并将其转换为PNG格式,你可以使用以下代码作为参考。这里,我们假设每个文件夹包含一个图像,你可能需要根据实际情况进行调整:

import scipy.io as scio
import os
datafolder = r'你文件的绝对路径但不包括文件名'
each_mat = '文件名称.mat'
each_mat = os.path.join(datafolder, each_mat)
array_struct = scio.loadmat(each_mat)
print(array_struct)

获取你mat文件的键值

然后开始mat转png

import os
import scipy.io as scio
from PIL import Image
import numpy as np

# 读取MAT文件
dataFile = r'文件路径'  #文件的相对/绝对路径
data = scio.loadmat(dataFile)

# 从键中获取五维数据
a = data['文件的键值']

# 获取数据的形状
num_samples, _, height, width, channels = a.shape

# 遍历每个文件夹
for sample_index in range(num_samples):
    # 取得每个文件夹中的数据
    image_data = a[sample_index, 0, :, :, :]

    # 将数据转为PNG图像
    image_data = (image_data * 255).astype(np.uint8)
    new_im = Image.fromarray(image_data)

    # 创建文件夹用于保存PNG图像
    output_folder = f'output_folder_{sample_index}'
    os.makedirs(output_folder, exist_ok=True)

    # 保存PNG图像
    output_path = os.path.join(output_folder, f'image_{sample_index}.png')
    new_im.save(output_path)

    print(f"Saved PNG image to {output_path}")

运行后会保存在当前文件夹,很多个文件夹。

这个代码会遍历每个文件夹(通过 sample_index 迭代),将对应的图像数据保存为PNG格式,并放置在以 output_folder_0, output_folder_1, ... 命名的文件夹中。确保 output_folder 是一个合适的目录,你可以根据需要调整保存的路径和文件名。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值