私は、タイムラプス映画の画像の束を処理するためにbashスクリプトを使用します。このメソッドはシャッタードラッグと呼ばれ、私はすべての画像の移動平均を作成しています。次のスクリプトが正常に動作します:読み書き可能な画像処理スクリプトのパフォーマンスを改善するにはどうすればよいですか?
#! /bin/bash
totnum=10000
seqnum=40
skip=1
num=$(((totnum-seqnum)/1))
i=1
j=1
while [ $i -le $num ]; do
echo $i
i1=$i
i2=$((i+1))
i3=$((i+2))
i4=$((i+3))
i5=$((i+4))
...
i37=$((i+36))
i38=$((i+37))
i39=$((i+38))
i40=$((i+39))
convert $i1.jpg $i2.jpg $i3.jpg $i4.jpg $i5.jpg ... \
$i37.jpg $i38.jpg $i39.jpg $i40.jpg \
-evaluate-sequence mean ~/timelapse/Images/Shutterdrag/$j.jpg
i=$((i+$skip))
j=$((j+1))
done
しかし、私はこのスクリプトは大きな平均窓(画像あたり1S)を使用して画像の多くを処理するのに非常に長い時間を要することに気づきました。私は、これはバックグラウンドで多くの読み書きが原因で起こっていると思います。
このスクリプトの速度を上げることは可能ですか?例えば、画像をメモリに格納し、すべての反復で最初の画像を削除し、最後の画像のみをロードすることによって、
私はmpr:{label}
のimagemagickの機能を発見しましたが、これは適切なアプローチではないと思います。convert
コマンドの後にメモリがクリアされますか?
各画像を何度も読み取るように見えるので、RAMディスク(どのOSを使用していますか?)を作成し、すべてのJPEGファイルをRAMディスクの「MPC」形式ファイルに変換して、 GNU Parallelを使ってください。 –
Ubuntu 15.10は私が使用しているOSです。 RAMディスクを簡単にセットアップして使用する方法はありますか? – Markus
ここにある例http://www.hecticgeek.com/2015/12/create-ram-disk-ubuntu-linux/ –