【问题标题】:manipulate a matlab file with python用python操作matlab文件
【发布时间】:2020-04-29 16:21:34
【问题描述】:

我有一个 .mat 文件,其中包含一些图像的注释,我需要使用 python 从该文件中读取和操作指定的值,但我尝试使用 h5py 它对我不起作用。使用 scipy 我可以读取文件并打印整个文件,但我无法获得指定的值。 我使用 octave 捕获了我的 mat 文件的结构,任何人都可以帮助我获取每个 ImgName 的 BBox 值并将它们保存到一个变量中。 screen shot of the annotation.mat file

【问题讨论】:

  • 那么你是说io.loadmat 运行了吗?如果是这样,您需要提供有关其产生的更多信息。 MATLAB 矩阵很好地映射到 numpy 数组(可能存在 order 差异)。 cellsstruct 产生更复杂的 numpy 数组。
  • io.loadmat 效果很好我做了一个 print("annotation") 并返回我文件的所有值。但是当我尝试获取指定值的 BBox 时,它可能不起作用,因为 BBox 是一个结构,而 ImgName 只是一个单元格。请问有没有办法解决这个问题(这是我第一次使用python和机器学习)
  • 有没有办法解决这个问题?有权访问您文件的人可能会弄清楚数据的存储方式。但我什至不会去猜测。
  • 你想帮忙吗?我没有理解你

标签: python numpy opencv scipy


【解决方案1】:

使用这个解决了问题(它可能会帮助像我这样的初学者):

import scipy.io as spio
anno=spio.loadmat('annotation_1.mat')
#BBox.  X y
#print(anno['annot'][0][1][0])
listX=anno['annot'][0][1][0]
print(listX[1][1])
#ImgName
#print(anno['annot'][0][1][1])
img=anno['annot'][0][1][1]
print(img)

【讨论】:

    猜你喜欢
    • 2011-01-23
    • 1970-01-01
    • 2019-01-29
    • 2012-02-01
    • 2013-06-04
    • 2016-05-28
    • 1970-01-01
    相关资源
    最近更新 更多