mat文件是matlab的数据存储的标准格式。mat文件是标准的二进制文件,还可以ASCII码形式保存和加载,在MATLAB中打开显示类似于单行EXCEL表格。
很多数据集的标签都是通过mat文件来存储的,为了解析出图片所对应的的标签信息,我们需要从mat文件中来解析出这些信息,这里我们利用人脸遮挡数据集MAFA为例,从中获取图片所对应的标签信息
数据集下载地址:http://www.escience.cn/people/geshiming/mafa.html
使用Python来解析mat文件其实是非常简单的,通过scipy库就可以了,没安装这个库的可以通过下面的命令进行安装
pip install scipy
import scipy.io as sio
mat_data = sio.loadmat(mat_path)
#直接输出mat文件的内容
print(mat_data)
#输出mat数据的key
print(mat_data.keys())
这里我们需要特别注意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文件中的描述一一对应