3

matlab で、配列、つまり最初の列が時間で他の 2 列が座標である行列がある場合、それをプロットすると:

ti=myarray(:,1);
xi=myarray(:,2);
yi=myarray(:,3);

for i=1:length(ti)
   plot(xi(i),yi(i));hold on;
   Mov(i)=getframe;
end

これは私の映画を均一に記録します。私が遊ぶとき

movie(Mov,1,20)

フレームが等時系列に分散されていることを前提としています。

指定された時間に映画が再生されるようにプロットを作成できますか?

pause可能であれば、私にとっては選択肢ではないかもしれないことに注意してください。システム時間が遅い (10ms精度)。また、matlab の遅い処理とシステム時間の精度の低さを組み合わせると、望ましくない結果が生じます。fpsまた、 myは よりも高くなる可能性があることに注意してください100。しかし、これが実装できるなら、私はそれを歓迎します。

4

1 に答える 1

4

可変フレームレート ムービーを作成するには、私のQTWriterクラスを使用できます。これは、Matlab のVideoWriterクラスに着想を得た使いやすい単一のクラス ファイルであり、Matlab スタイルのグラフィックスに適したいくつかの形式で QuickTime でエンコードされたムービーをネイティブにエクスポートできます。(出力ファイルを再生したい場合を除いて) QuickTime でさえも、他には何も必要ありません。特に、フレーム レートを連続的に変化させる Quicktime の機能をサポートしています。

この QuickTime ムービーに似たムービーを生成するコードの例を次に示します。

% Prepare new movie file using the default PNG compression
movObj = QTWriter('peaks.mov');

% Create an animation
hf = figure; Z = peaks; surfc(Z); frames = 100;
axis tight; set(gca,'nextplot','replacechildren');

% Animate plot and write movie
for k = 0:frames
    surfc(sin(2*pi*k/frames)*Z,Z);

    % Vary the frame-rate
    movObj.FrameRate = k;

    % Write each frame to the file
    writeMovie(movObj,getframe(hf));
end

% Finish writing movie and close file
close(movObj);

Matlab 内では、可変フレームレートの QuickTime ムービーは、関数に渡すことで、Matlab のクラスで再生できますVideoReader(Windows/Linux ではこれについてはわかりません) 。出力ムービーを別のコンテナ形式 (AVI など) または可変フレームレートをサポートしていないコーデック (または変換ソフトウェアがサポートしていない場合) に変換する場合は、変換したムービーのフレームレートを最高に設定する必要があります。 QuickTime ファイルのフレームレート。これにより、ファイルが大きくなる可能性があります-可変フレームレートのムービーは、一時的に圧縮されていると考えることができます(フレーム間圧縮で行われるのと少し似ています)。readerobj.FrameRatemovie

フレームレート パラメータには無限の解像度と範囲がないため、'TimeScale'パラメータも調整する必要がある場合があります。ユーザーのハードウェア、デコードの計算コスト、およびデータ レートによっては、高フレームレートでのムービーの再生が困難になる場合があります。通常、プレイヤーはフレームを落とすだけです。QTWriterまた、'PlayAllFrames'QuickTime Player にすべてのフレームを強制的にレンダリングさせるオプションもありますが、これは非リアルタイム再生になる可能性があります。または、ファイル サイズが少し大きくなりますが、より高速にデコードできる 'Photo TIFF' 圧縮タイプを選択することもできます。

コードはオープン ソース (BSD) であり、 Githubでホストされています。貢献者を歓迎します。最適化と改善の余地はまだたくさんあります。別の例と結果のムービーは、プロジェクトの Web ページで見ることができます。

于 2013-07-09T15:16:47.113 に答える