如何可视化 h5 格式数据的图像?

How can I visualise an image in h5 format data?

import h5py
f = h5py.File('the_file.h5', 'r')
one_data = f['key']
print(one_data.shape)
print(one_data.dtype)
print(one_data)

我使用上面的代码打印信息。 打印结果为:

(320, 320, 3)
uint8
<HDF5 dataset "1458552843.750": shape (320, 320, 3), type "|u1">
import cv2
import numpy as np
import h5py
f = h5py.File('the_file.h5', 'r')
dset = f['key']
data = np.array(dset[:,:,:])
file = 'test.jpg'
cv2.imwrite(file, data)

jet 提供的解决方案工作得很好,但缺点是需要包含 OpenCV (cv2)。如果您不将 OpenCV 用于其他任何用途,那么 install/include 仅用于保存文件就有点矫枉过正了。或者,您可以使用 imageio.imwrite (doc),它占用空间更小,例如:

import imageio
import numpy as np
import h5py

f = h5py.File('the_file.h5', 'r')
dset = f['key']
data = np.array(dset[:,:,:])
file = 'test.png' # or .jpg
imageio.imwrite(file, data)

安装 imageio 就像 pip install imageio 一样简单。

此外,matplotlib.image.imsave (doc) 提供了类似的图像保存功能。

还可以更简单:

pip install Pillow h5py

然后

import h5py
from PIL import Image

f = h5py.File('the_file.h5', 'r')
dset = f['key'][:]
img = Image.fromarray(dset.astype("uint8"), "RGB")
img.save("test.png")