从 .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 文件中提取数据和标签的主要内容,如果未能解决你的问题,请参考以下文章