在HDF5中,图像并没有特别之处。您提供的
链接是高级库绑定。您可以同样轻松地使用HDF5中的
图像规格说明,这些规格说明只是属性。
以下是一个
非常简单粗糙的示例:
import numpy as np
import h5py
pal = np.array([[0, 0, 168],
[0, 0, 252],
[0, 168, 252],
[84, 252, 252],
[168, 252, 168],
[0, 252, 168],
[252, 252, 84],
[252, 168, 0],
[252, 0, 0]],
dtype=np.uint8
)
x = np.linspace(0,pal.shape[0]-1)
data,Y = np.meshgrid(x,x)
f = h5py.File('test.h5', 'w')
dset = f.create_dataset('img', data=data)
pset = f.create_dataset('palette', data=pal)
dset.attrs['CLASS'] = 'IMAGE'
dset.attrs['IMAGE_VERSION'] = '1.2'
dset.attrs['IMAGE_SUBCLASS'] = 'IMAGE_INDEXED'
dset.attrs['IMAGE_MINMAXRANGE'] = np.array([0,255], dtype=np.uint8)
dset.attrs['PALETTE'] = pset.ref
pset.attrs['CLASS'] = 'PALETTE'
pset.attrs['PAL_VERSION'] = '1.2'
pset.attrs['PAL_COLORMODEL'] = 'RGB'
pset.attrs['PAL_TYPE'] = 'STANDARD8'
f.close()
运行示例,然后在HDFView中查看图像:
请注意,您必须使用“Open As”打开图像数据才能将其视为图像,因为表格视图是默认选项。
numpy
数组吗?数据也是一个数组吗?请重新阅读h5py
文档。我相信numpy
数组是您可以使用该软件包添加的基本数据单元。 - hpauljcreate_dataset
是将numpy数组添加到组中的基本机制。请参考http://docs.h5py.org/en/latest/high/dataset.html。 - hpauljh5py
在其端口中未包含此图像API。您可能需要询问开发人员:https://github.com/h5py/h5py - hpauljmatplotlib
代码将其绘制为图像呢? - abcd