从matlab文件中提取图像

时间:2018-09-20 06:42:40

标签: python matlab

我正在尝试从称为NYUV2 dataset的RGB-D数据集中提取图像(及其标签等)。 (我下载了标记的数据集)

这是一个matlab文件,因此我尝试使用hdf5进行读取,但我不知道如何从此处继续。如何将图像及其相应的标签和深度保存到另一个文件夹中?

这是我使用的脚本及其相应的输出。

import numpy as np
import h5py

f = h5py.File('nyu_depth_v2_labeled.mat','r')

k = list(f.keys())
print(k)

输出为

['#refs#', '#subsystem#', 'accelData', 'depths', 'images', 'instances', 'labels', 'names', 'namesToIds', 'rawDepthFilenames', 'rawDepths', 'rawRgbFilenames', 'sceneTypes', 'scenes']

1 个答案:

答案 0 :(得分:1)

我希望这会有所帮助。

我想您正在使用PIL包fromarray函数需要“图像模式”,请参见https://pillow.readthedocs.io/en/3.1.x/handbook/concepts.html#concept-modes

我想您的图像是RGB。我相信图像应该在“图像”和数据集“图像名称”下

因此

import h5py
import numpy as np
from PIL import Image

hdf = h5py.File('nyu_depth_v2_labeled.mat','r')
array = np.array(list(hdf.get("images/image_name")))
img = Image.fromarray(array.astype('uint8'), 'RGB')
img.show()

您还可以查看我给出的另一个答案,以了解如何保存图像

Images saved as HDF5 arent colored

要查看h5文件的内容,请下载HDFview,它将有助于在其中导航。

相关问题