python利用HDF5将连续二维图像打包成一个三维图像

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下面

猜你喜欢

转载自blog.csdn.net/baidu_33122327/article/details/86541585