簡體   English   中英

如何以HDF5格式存儲非常大的3維矩陣?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM