1、HDF5简介
HDF(Hierarchical Data Format)指一种为存储和处理大容量科学数据设计的文件格式及相应库文件。HDF 最早由美国国家超级计算应用中心 NCSA 开发,目前在非盈利组织 HDF 小组维护下继续发展。当前流行的版本是 HDF5。HDF5 拥有一系列的优异特性,使其特别适合进行大量科学数据的存储和操作,如它支持非常多的数据类型,灵活,通用,跨平台,可扩展,高效的 I/O 性能,支持几乎无限量(高达 EB)的单文件存储等,详见其官方介绍:https://support.hdfgroup.org/HDF5/ 。
Python 中有一系列的工具可以操作和使用 HDF5 数据,其中最常用的是 h5py 和 PyTables。我只介绍 h5py。
2、h5py安装
pip install h5py
3、利用HDF5将连续二维图像打包成一个三维图像,生成.h5文件
import os
import h5py
img_path = 'XXX/'
out_h5_path = 'XXX.h5'
dataset = np.zeros((10, 400, 400), np.float)
# 遍历指定地址下的所有图片
cnt_num = 0
img_list = sorted(os.listdir(img_path))
os.chdir(img_path)
for img in img_list:
if img.endswith(".png"):
print(img)
gray_img = cv2.imread(img, 0)
dataset[cnt_num, :, :] = gray_img
cnt_num += 1
with h5py.File(out_h5_path, 'w') as f:
f['data'] = dataset # 将数据写入文件的主键data下面