Python解析mat文件

mat文件

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

很多数据集的标签都是通过mat文件来存储的,为了解析出图片所对应的的标签信息,我们需要从mat文件中来解析出这些信息,这里我们利用人脸遮挡数据集MAFA为例,从中获取图片所对应的标签信息

数据集下载地址:http://www.escience.cn/people/geshiming/mafa.html

mat文件解析

使用Python来解析mat文件其实是非常简单的,通过scipy库就可以了,没安装这个库的可以通过下面的命令进行安装

pip install scipy
  • 导包
import scipy.io as sio
  • 加载读取mat文件
mat_data = sio.loadmat(mat_path)
  • 获取mat文件中的相关信息
#直接输出mat文件的内容
print(mat_data)
#输出mat数据的key
print(mat_data.keys())

Python解析mat文件_第1张图片

这里我们需要特别注意key,后面需要利用这个字段来进行进一步解析数据,像__***__这种是文件自带的属性,不用管,所以实际上我们字需要最后一个key,label_train

  • 解析数据 
#获取key
key_name = list(mat_data.keys())[-1]
#根据key获取数据
data = mat_data[key_name]
#获取数据的shape,这里数据的shape是(1,25876)
#后面表示的是图片的数量
print(data.shape)
#遍历数据
for line in data[0,:]:
    #获取图片的名称
    img_name = line[1][0]
    #获取图片对应的标签信息
    img_info = line[2][0]

后面图片标签信息的解析,大家可以根据readme文件中的描述一一对应

你可能感兴趣的:(Python修炼之路)