我有一个非常大的矩阵,它是一个作为帧数组的视频文件,每个帧的分辨率约为 350x250。我在单个视频文件中有大约 8,000-10,000 个这样的帧,大小约为 1-1.5GB。我认为 HDF5 是一种很适合我使用的文件格式,因为我必须对文件(跨整个深度列)执行大量数学运算。我的问题是我无法在 HDF5 中存储这个 3D 矩阵。有人可以建议我如何以增量方式将这些帧存储为 hdf5 格式的 3D 矩阵(逐帧添加到 hdf5 文件中)?我正在使用 h5py python 包。
例如,假设您的视频有 10 帧,分辨率为 200x200 像素。因此,您必须创建一个尺寸为 10 x 200 x 200 x 3 且数据类型为 uint8(每个 RGB 分量使用 8 个无符号位)的数据集。这是传输到 h5py api 的方式。查看文档以获取详细信息。
import h5py
import numpy as np
# create an hdf5 file
with h5py.File("/tmp/videos.h5") as f:
# create a dataset for your movie
dst = f.create_dataset("myvideo", shape=(10, 200, 200, 3),
dtype=np.uint8)
# fill the 10 frames with a random image
for frame in range(10):
dst[frame] = np.random.randint(255, size=(200, 200, 3))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3298 次 |
| 最近记录: |