2017-08-21 6 views
2

ムービーに作成する時系列データがあります。データは、2D(約500×10000)または3D(500×500×10000)とすることができる。 2Dデータの場合、ムービーフレームはplotを使用した単純な線図で、3Dデータの場合はsurf,imagesc,contourなどを使用できます。次に、これらのフレームをMATLABで作成し、ffmpegを使用してビデオファイルを圧縮します。MATLABとffmpegを使用した高速ムービーの作成

すばやく行うには、すべての画像を表示しないようにしたり、データをディスクに保存したりしないで、処理中に再度読み取るようにします。通常、getframeまたはVideoWriterを使用してMATLABでムービーを作成しますが、画面に表示しないようにすると難しくなります。隠しフィギュアでプロットし、.pngファイルとしてディスクに保存してから、ffmpeg(たとえばx265エンコーダーを.mp4と入力)を使用して圧縮してください。しかし、imagescの出力を私のiMacに保存するのは、初めて3.5秒、その後0.5秒でした。 ffmpegにそれらをもう一度読むように頼むだけで、ディスクに非常に多くのファイルを保存するのに十分な速さではないこともわかります。 1つはのようにデータをhardcopyと示唆していますが、プロット方法(例:plot,など)に関係なく動作するかどうか、最小限のディスクアクセスでデータをffmpegに転送する方法がわかりません。

これはthisと似ていますが、immovieは遅すぎます。この投稿3は似ていますが、画像をディスクに書き込んでから読み込み(低IO)

答えて

0

は多分あなたが何をしようとしていることsurf、またはimagescまたはcontourが行っている作業の同じ種類をやって、その後、直接ファイルに書き込むことにより、画像にデータを変換することで、それがすべて続けるだろう書き込みが必要になるまでメモリ内のデータ私もここで働くことができ、実際の画像とはほとんど経験がなかった

: を多分あなたはできる、私はimshowを呼び出すことに多くの時間を要したことを見たが、imshow機能によって作成されたpresetted図のCDataは約5ミリ秒かかっ変更するので、あなたが好きな機能を使って数字を設定し、その数字が同じように更新されるように基礎となるXDataYDataなどを更新しますか?

最高の運勢!

+0

この死んだ投稿を実際に掘ったとは信じられません。ニース!あなたの提案を実装しようとしましたが、それが動作するかどうかを確認しましたか? – hyiltiz

関連する問題