[英]How to store very large 3 dimensional matrix in HDF5 format?
我有一個非常大的矩陣,它是一個視頻文件,是一個幀數組,每個幀的分辨率約為350x250。 我在單個視頻文件中有大約8,000-10,000個此類幀,大小約為1-1.5GB。 我已經發現HDF5是一種很好的文件格式,因為我必須對文件執行很多數學運算(在整個深度列中)。 我的問題是我無法在HDF5中存儲此3D矩陣。 有人可以建議我如何以增量格式(將幀逐幀添加到hdf5文件中)作為hdf5格式的3D矩陣存儲這些幀嗎? 我正在使用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))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.