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

问题描述

我目前正在尝试准备由带有附加标签的图像组成的数据,其中每个图像和标签当前都存储为 .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]],dtype=uint8)}

但是每当我尝试通过 .get('X') 提取 X 键并绘制图像时,我都会收到以下错误: “dtype 对象的图像数据无法转换为浮点数”

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

解决方法

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

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

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