我知道mat文件的版本问题,这些版本对应于Python中的不同加载模块,即
第一、二层:
大小方面:
HOI方面:
HOI bboxhuman方面:
当我使用
scipy.io
和h5py
。我也搜索了许多类似的问题,比如scipy.io.loadmat嵌套结构(即字典)和如何在访问Python时保留Matlab结构? 但是当涉及到更复杂的mat文件时,它们都会失败。我的anno_bbox.mat
文件结构如下所示:第一、二层:
![anno_bbox](https://istack.dev59.com/2gzGs.webp)
![bbox_test](https://istack.dev59.com/Bjeiv.webp)
![size](https://istack.dev59.com/kqsuw.webp)
![hoi](https://istack.dev59.com/Dwo5G.webp)
![bboxhuman](https://istack.dev59.com/Ev5HZ.webp)
spio.loadmat('anno_bbox.mat', struct_as_record=False, squeeze_me=True)
时,它只能将第一层信息作为字典获取。>>> anno_bbox.keys()
dict_keys(['__header__', '__version__', '__globals__', 'bbox_test',
'bbox_train', 'list_action'])
>>> bbox_test = anno_bbox['bbox_test']
>>> bbox_test.keys()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'numpy.ndarray' object has no attribute 'keys'
>>> bbox_test
array([<scipy.io.matlab.mio5_params.mat_struct object at 0x7fa8660ab128>,
<scipy.io.matlab.mio5_params.mat_struct object at 0x7fa8660ab2b0>,
<scipy.io.matlab.mio5_params.mat_struct object at 0x7fa8660ab710>,
...,
<scipy.io.matlab.mio5_params.mat_struct object at 0x7fa8622ec4a8>,
<scipy.io.matlab.mio5_params.mat_struct object at 0x7fa8622ecb00>,
<scipy.io.matlab.mio5_params.mat_struct object at 0x7fa8622f1198>], dtype=object)
我不知道接下来该做什么。这对我来说太复杂了。文件可以在anno_bbox.mat(8.7MB)中找到。