.mat文件批量转成图片——python脚本编写

mat文件简介

mat文件是Matlab的数据存储的标准格式。mat文件是标准的二进制文件,还可以ASCII码形式保存和加载,在MATLAB中打开显示类似于单行EXCEL表格。 —— [ 百度百科 ]

mat文件最基本的操作主要有两个:

第一、用load命令,具体为load+文件名.mat,就可以将mat中的数据放到工作空间里,然后操作

第二、用save命令,具体为save+文件名(自己取一个).mat,就可以将当前工作区间里的数据保存下来供调用了

由于深度学习中训练模型需要的输入是图片,而需要的特征保存在mat文件中,考虑到数据库包含大量的数据,所以需要编写程序来完成mat文件批量转成图片。
采用python语言来编写脚本。

单个mat文件的导入与转换

代码如下:

import cv2
import scipy.io as scio
from PIL import Image
import numpy as np
import matplotlib.pyplot as pltdataFile = r'/folder/reggae.00041.mat' # 单个的mat文件
data = scio.loadmat(dataFile)
print(type(data))
# print (data['data'])
# 由于导入的mat文件是structure类型的,所以需要取出需要的数据矩阵
a=data['data']
# 取出需要的数据矩阵# 数据矩阵转图片的函数
def MatrixToImage(data):data = data*255new_im = Image.fromarray(data.astype(np.uint8))return new_imnew_im = MatrixToImage(a)
plt.imshow(a, cmap=plt.cm.gray, interpolation='nearest')
new_im.show()
new_im.save('reggae.00041.bmp') # 保存图片

批量处理

单个的mat文件转图片是很好实现的,但是处理的要点就在于对mat文件的批量处理,当一个文件夹下有几百个或者更多的mat文件,就必须进行遍历操作来完成批量转换。


如图,metal文件夹下包含了很多个.mat文件,其中的名称是可以拆分的,可以利用中间的数字段进行遍历操作。


在matlab中打开其中一个mat文件,发现一个mat文件中包含了三部分,所需要的是其中的data的数字矩阵部分。

考虑以上两点,具体的代码如下:

import cv2
import scipy.io as scio
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
import os# 数据矩阵转图片的函数
def MatrixToImage(data):data = data*255new_im = Image.fromarray(data.astype(np.uint8))return new_im# 添加路径,metal文件夹下存放mental类的特征的多个.mat文件
folder = r'/Users/Desktop/metal'
path = os.listdir(folder)
#print(os.listdir(r'/Users/hjy/Desktop/blues'))for each_mat in path:if each_mat == '.DS_Store':passelse:first_name, second_name = os.path.splitext(each_mat)# 拆分.mat文件的前后缀名字,注意是**路径**each_mat = os.path.join(folder, each_mat)# print(each_mat)array_struct = scio.loadmat(each_mat)array_data = array_struct['data']# 取出需要的数字矩阵部分new_im = MatrixToImage(array_data)# 调用函数plt.imshow(array_data, cmap=plt.cm.gray, interpolation='nearest')new_im.show()print first_namenew_im.save(first_name+'.bmp')# 保存图片

运行程序,可得到:

可以看到,在在对应文件夹下已经完成.mat文件批量转换成图片。

.mat文件批量转成图片——python脚本编写相关推荐

  1. 如何将PDF文件批量转换成图片格式

    在我们的日常工作中文件转换是一件常见的日常工作,而PDF文件转换是每一个上班族必备的技能之一,比如讲PDF文件转换成图片格式.毫无疑问PDF格式给用户带来更好的阅读体验,PDF文件是一页一页的文件形式 ...

  2. python 脚本将视频转化成图片 | python scripts to convert video to pictures

    python 脚本将视频转化成图片 | python scripts to convert video to pictures python video_to_images.py 运行时,修改输入.输 ...

  3. 将 .mat 转换为 .png 格式的图片Python实现(通俗易懂版)

    看了一下午关于将 .mat 转换为 .png 格式的图片Python实现的CSDN,总算知道了个大概,于是自己将他们整合了一下,希望可以帮助到大家,里面有什么问题也请大家给我提出来,话不多说,首先附上 ...

  4. pdf文件怎么转换成图片?

    pdf文件怎么转换成图片?今天我要给大家分享一个日常经常用到的办公小技巧,就是pdf文件怎么转换成图片,上个星期我刚好有这么一个需求,老板要求我把一份有着几十页的pdf文件转换成图片给他,所以我也真的 ...

  5. linux生成缩略图,linux下使用imagemagick批量生成缩略图的python脚本

    linux下使用imagemagick批量生成缩略图的python脚本.程序用了递归,可以查找目录下所有的图片按照一定的规则生成指定宽度的缩略图. #!/usr/bin/env python # -* ...

  6. 如何将EAN 13码批量输出成图片

    EAN是标准条形码,目前商店里大多数商品上都打有此码.EAN广泛用于便利店里的POS系统中.由于EAN和美国.加拿大的UPC,日本的JAN兼容,是世界通用的条形码.EAN13码是由前缀码.厂商识别码. ...

  7. 【RPA机器人】PDF批量转换成图片机器人

    运行前须知: 1.仅支持win10系统 2.请确保安装金山PDF独立版 3.请把屏幕分辨率设置为1920x1080,缩放布局100% 4.生成的图片将保存在所选文件夹目录下 运行流程: 1.获取需批量 ...

  8. CAD文件怎么转成图片?手机也能轻松解决

    小伙伴们平时使用手机浏览过CAD文件吗?如果你想浏览一个CAD文件,但又没有相应的软件可以使用,可以尝试将CAD文件格式转换成图片格式.如果是图片文件,更容易查看,不受专业软件限制.其次,对于经常使用 ...

  9. 多个dwg文件批量转换成jpg格式

    为了在设计绘图工作中更好地传输查看,我们需要把大量的dwg文件转换成jpg格式.那么有什么快捷的方法呢?今天就为大家推荐一款软件-CAD编辑器,来批量操作将多个dwg文件批量转换成jpg格式.具体步骤 ...

最新文章

  1. Android开发笔记之:Handler Runnable与Thread的区别详解
  2. Android WebView 性能优化
  3. vue 接口数据排序_Vue 使用 axios 请求 mock 模拟接口的数据
  4. python运行结果闪退_Pyhton TestCase运行闪退与失败,原因不详。。。
  5. 去除div最后一个逗号_去除重复值、统计数量,这个公式可以直接套用!
  6. .net数据源控件绑定mysql_理解asp.net中DropDownList编辑数据源,绑定数据库数据。...
  7. anaconda 安装pytorch_conda上安装PyTorch
  8. 极简代码(六)—— 返回 0/1 构成的布尔向量
  9. windows10配置内外网IP切换bat脚本
  10. Win 10 深度隐藏文件夹命令
  11. 2021年Java常见面试题,实战篇
  12. 使用python turtle库绘制一个三角形_python ——turtle画三角形
  13. 蚂蚁区块链BaaS平台应用开发指南(四):JavaSDK的接入
  14. Python常用开发软件有哪些?
  15. 【计网】(三)超网、路由、NAT协议
  16. 802.11a data rate
  17. dd 命令的使用方法
  18. LeetCode日常刷题1、657、717、67
  19. mysqlin会使用索引吗
  20. html写出太极八卦图,求图,谁能用符号拼成太极八卦图!!!!!!!!!!!!...

热门文章

  1. SSR 配置postcss 自动将px转化为rem
  2. Python从入门到转行
  3. Darknet 轻量级深度学习训练框架
  4. 计算机辅助翻译stm,计算机辅助翻译报告.doc
  5. JVM垃圾回收器工作原理及使用实例介绍
  6. 复习JavaScript时的笔记
  7. JAVA实战项目【2】(面向对象图书小练习)
  8. Magic Leap 2正式发布:3299美元起,9月底出货
  9. 【电路分析】拉普拉斯变换及其应用
  10. python绘制八角形_2014易语言所有命令打印.doc