私は非常に大きなマトリックスを持っています。これは、それぞれ約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. 保存する非常に大きなテキストデータを扱うファイル形式は何ですか。
- 3. 非常に大きなndarrayをディスクに保存するには?
- 4. 3次元マトリックス要素にアクセスする方法は?
- 5. c#非常に大きなビットマップをjpegs(または他の圧縮形式)として保存する
- 6. Webアプリケーション - ローカルファイルに非常に大きなデータストリームを保存する
- 7. 大きな画像マトリックス:小さなマトリックスに保存
- 8. ウェブテーブルの内容を2次元マトリックスに保存する
- 9. Cassandraにマトリックス形式でデータを保存しますか?
- 10. 非常に大きな形式のAngularJSのパフォーマンス
- 11. 3次元形状ファイルをPythonで2次元に変換する方法
- 12. 潜在的に非常に大きな1次元配列を可変次元の多次元行列に変形する
- 13. Matlab 3Dマトリックス変換2次元マトリックスベクトル化による3次元
- 14. pandasにデータを保存するときの長形式と長形式の比較hdf5
- 15. 非常に大きなフィボナッチ数の出力を保存するには?
- 16. 非常に大きなフォームの角度プロジェクトの自動保存
- 17. iOSでUIImageをプログレッシブJPEG形式に保存する方法は?
- 18. Webページをjava形式でPDFに保存する方法は?
- 19. SeleniumにPNG形式でキャンバスを保存する方法は?
- 20. 大きな重量マトリックスの次元でテンソルフロー勾配の問題を解決する方法は?
- 21. ココアで非常に大きなスクロールビューを実装する方法
- 22. は元の形式で辞書に保存したCSVファイルを
- 23. Pythonはhdf5というファイルを大きなファイルサイズで保存します
- 24. 非常に大きなCSVデータセットをd3にロードする方法
- 25. Sparkからファイルをフェザー形式で保存する方法は?
- 26. イメージファイルをBMP形式で保存する方法は?
- 27. バイナリ形式でデータを保存する方法は?
- 28. ラスタデータをRオブジェクト形式で保存する方法は?
- 29. ハイブテーブルを.xlsx形式で保存する方法は?
- 30. Rデータフレームをmsgpack形式で保存する方法は?
あなたは小さな配列を格納する方法を私たちに示し、(20,20)サイズの10個のフレームが言います。ヒント、(10,20,20)に設定されたデータを初期化し、 'data [i、:、:] = frame'を反復する。小さいデータの場合は、まずこれを実行してください。後で大きな問題に取り組むことができます。 – hpaulj
ありがとう@hpaul。これは私の問題を解決しました。 –