私は非常に大きなマトリックスを持っています。これは、それぞれ約350x250の解像度のフレームの配列としてのビデオファイルです。私は約1〜1.5GBのサイズの1つのビデオファイルに約8,000〜10,000のフレームを持っています。 私は、HDF5がファイルの数学的操作を(深さの列全体で)多く実行する必要があるため、私の使用に適したファイル形式であると考えました。 私の問題は、この3DマトリックスをHDF5に保存できないということです。誰かがhdf5形式の3Dマトリックスとして、これらのフレームをインクリメンタルな方法で(フレームをhdf5ファイルに追加する)私の方法を提案できますか? 私はh5py pythonパッケージを使用しています。非常に大きな3次元マトリックスをHDF5形式で保存する方法は?
0
A
答えて
1
例として、ビデオの解像度が200x200ピクセルの10個のフレームがあるとします。したがって、10 x 200 x 200 x 3のデータ型をデータ型uint8で作成する必要があります(各RGBコンポーネントは符号なし8ビットを使用します)。これはh5py apiへの転送方法です。詳細はdocsをご確認ください。 http://docs.h5py.org/en/latest/high/dataset.htmlからのアイデアを使用して
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))
+1
フレームがグレースケールの場合、データセットの形状はもちろん10 x 200 x 200になります。 – weatherfrog
+0
これは私が必要としていたものです。それは完璧に働いた! ありがとう! –
関連する問題
- 1. 非常に大きな数値を保存する方法は?
- 2. c#非常に大きなビットマップをjpegs(または他の圧縮形式)として保存する
- 3. 大きな画像マトリックス:小さなマトリックスに保存
- 4. ウェブテーブルの内容を2次元マトリックスに保存する
- 5. Cassandraにマトリックス形式でデータを保存しますか?
- 6. 非常に大きな形式のAngularJSのパフォーマンス
- 7. Matlab 3Dマトリックス変換2次元マトリックスベクトル化による3次元
- 8. 潜在的に非常に大きな1次元配列を可変次元の多次元行列に変形する
- 9. pandasにデータを保存するときの長形式と長形式の比較hdf5
- 10. 非常に大きなフィボナッチ数の出力を保存するには?
- 11. 非常に大きなフォームの角度プロジェクトの自動保存
- 12. Webページをjava形式でPDFに保存する方法は?
- 13. SeleniumにPNG形式でキャンバスを保存する方法は?
- 14. iOSでUIImageをプログレッシブJPEG形式に保存する方法は?
- 15. ココアで非常に大きなスクロールビューを実装する方法
- 16. データを元のテキスト形式で保存する
- 17. ハイブテーブルを.xlsx形式で保存する方法は?
- 18. イメージファイルをBMP形式で保存する方法は?
- 19. ラスタデータをRオブジェクト形式で保存する方法は?
- 20. Sparkからファイルをフェザー形式で保存する方法は?
- 21. バイナリ形式でデータを保存する方法は?
- 22. Rデータフレームをmsgpack形式で保存する方法は?
- 23. 2次元マトリックスを複製して3次元配列を作成する(R)
- 24. イメージをPNG形式に保存する方法は?
- 25. 非常に大きなCSVデータセットをd3にロードする方法
- 26. MATLABで3次元マトリックスを分割する
- 27. 3次元行列の下三角形をリセットする方法
- 28. Androidに大きなテキストリソースを保存する方法(最大100MB)
- 29. CRUDRepositoryの保存方法は非常に遅いですか?
- 30. 非常に大きなテーブルを構成する方法
あなたは小さな配列を格納する方法を私たちに示し、(20,20)サイズの10個のフレームが言います。ヒント、(10,20,20)に設定されたデータを初期化し、 'data [i、:、:] = frame'を反復する。小さいデータの場合は、まずこれを実行してください。後で大きな問題に取り組むことができます。 – hpaulj
ありがとう@hpaul。これは私の問題を解決しました。 –