利用scipy.io读取.mat文件
import scipy.io as io
io.loadmat('anno.mat')
如果该mat文件是由高版本matlab创建的,可能会出现以下提示:
Please use HDF reader for matlab v7.3 files
此时该方法失效
利用h5py读取.mat文件
import h5py
data = h5py.File('./AFW/testimages/anno.mat') #读取
print(list(data.keys())) #chakan naxie key ['#refs#', 'anno']
print(data['anno']) #chakan xingzhuang <HDF5 dataset "anno": shape (4, 205), type "|O">
print(data['anno'][1][i]) #reference or index <HDF5 object reference>
print(data[data['anno'][1][i]]) #liru:<HDF5 dataset "ud": shape (1, 1), type "|O">
print(data[data[data['anno'][1][i]][k][0]])#<HDF5 dataset
从以上打印信息可以发现:
<HDF5 dataset shape:
1.data[‘anno’],
2.data[data[‘anno’][1][i]]
3.data[data[data[‘anno’][1][i]][k][0]]
<HDF5 object reference:
1.data[‘anno’][1][i]
2.data[data[‘anno’][1][i]][k][0]
可以进一步发现**<HDF5 dataset shape是将<HDF5 object reference**做成索引的。