【发布时间】:2019-02-05 17:29:09
【问题描述】:
我目前正在开发一个将文本文件和 jpg 图像转换为 HDF5 格式的程序。用HDFView 3.0打开,好像只保存了灰度图。
hdf = h5py.File("Sample.h5")
img = Image.open("Image.jpg")
data = np.asarray((img), dtype="uint8")
hdf.create_dataset("Photos/Image 1", data=data, dtype='uint8')
dset = hdf.get("Photos/Image 1")
dset.attrs['CLASS'] = 'IMAGE'
dset.attrs['IMAGE_VERSION'] = '1.2'
arr = np.asarray([0, 255], dtype=np.uint8)
dset.attrs['IMAGE_MINMAXRANGE'] = list(arr)
dset.attrs['IMAGE_SUBCLASS'] = 'IMAGE_TRUECOLOR'
dset.attrs['INTERLACE_MODE'] = 'INTERLACE_PIXEL'
在 python 中,可以使用 Image.show() 方法显示原始彩色图像:
hdf = h5py.File("Sample.h5")
array = np.array(list(hdf.get("Photos/Image 1")))
img = Image.fromarray(array.astype('uint8'))
img.show()
【问题讨论】:
-
如果
img.show()显示彩色图像,基于从hdf文件加载的数据,则颜色已保存。如果HDFView只显示灰度,那么这是HDFView(或其设置)的问题,而不是文件保存的问题。
标签: python image hdf5 h5py hdf