从 .mat 文件中提取数据和标签

Posted

技术标签:

【中文标题】从 .mat 文件中提取数据和标签【英文标题】:Extracting data and labels from .mat file 【发布时间】:2021-05-17 01:40:19 【问题描述】:

我目前正在尝试准备由带有附加标签的图像组成的数据,其中每个图像和标签当前都存储为 .mat 文件。

我的问题是如何提取图像和标签?

我目前正在使用 scipy.io.loadmat,打印时得到以下结果:

'__header__': b'MATLAB 5.0 MAT-file, Platform: PCWIN64, Created on: Fri Feb 01 22:33:35  2019', '__version__': '1.0', '__globals__': [], 'GTLabel': array([], shape=(0, 1), dtype=object), 'GTMask': array([[0, 0, 0, ..., 0, 0, 0],
   [0, 0, 0, ..., 0, 0, 0],
   [0, 0, 0, ..., 0, 0, 0],
   ...,
   [0, 0, 0, ..., 0, 0, 0],
   [0, 0, 0, ..., 0, 0, 0],
   [0, 0, 0, ..., 0, 0, 0]], dtype=uint8)

但每当我尝试通过 .get('X') 提取 X 键并绘制图像时,都会出现以下错误: "dtype对象的图像数据不能转换为float"

或者当我尝试打印标签时,我只收到输出“无”

【问题讨论】:

【参考方案1】:

您能提供“.mat”文件吗?听起来可能一旦图像和标签被导入而不被 scipy 解释。我要检查的内容:

    首先检查 scipy 是否可以解释 .mat 文件中的图像 如果在 IDE 中工作,您可以直观地检查变量,分配导入的文件,然后花时间检查它并确保内容按照您(更重要的是 scipy)期望的方式排列. 根据检查的方式,尝试解析文件以便正确解释或考虑另一种存储信息的方式。

请注意,在 MatLab 中,彩色图像被处理为 MxNx3 unit8 矩阵(R、G、B 级别各有一个 z 维)。我以前从未将图像从 matlab 导出到另一个程序中作为“.mat”,尤其是带有文本标签的,但希望上述思路有助于缩小范围。

【讨论】:

以上是关于从 .mat 文件中提取数据和标签的主要内容,如果未能解决你的问题,请参考以下文章

如何从 XML 文件中提取所有标签及其子项?

从两个唯一标签或评论之间的文件中提取内容并将其放入具有相同标签或评论的其他文件中?

利用BPSO与KNN进行特征选择及matlab代码实现

python从html标签中提取数据[重复]

如何从 TensorFlow 数据集中提取数据/标签

从 Dataframe 列中提取标签