convert -average darky1.jpg darky2.jpg lighty1.jpg lighty2.jpg l.ppm
convert -average lighty1.jpg lighty2.jpg lighty1.jpg lighty2.jpg d.ppm
l.ppm は d.ppm よりもはるかに明るいです。画像の順序は重要です (重要ではないはずですが)。
を使用する場合も同様ですevaluate-sequence mean
。
どうすれば正しく実行できますか?
答え1
ただ使うだけグラフィックスマジック:gm convert -average *.JPG q.ppm
答え2
8 年経った今でも、これはまだ問題であるようで、StackExchange ファミリーでは満足のいく回答が得られていません。
からこのブログ投稿:
ImageMagick の -average 演算子は、現在検討中の画像と前回の平均化の結果の 2 つの画像を一度に平均化します。その後、次の画像に進みます。
したがって、シーケンス内のすべての画像が同じ重みを持つのではなく、後の画像の方が重みが高くなります。このオプションを使用するほとんどの人が直感的に期待する結果は得られません。また、すべての画像をメモリにロードする必要があるという問題もあります。
両方の問題の解決策は、次のように、画像のペアに対して convert を再帰的に呼び出すスクリプトです。
#!/bin/bash
i=0
for file in img*jpg; do
echo -n "$file.. "
if [ $i -eq 0 ]; then
cp $file avg.jpg
else
convert $file avg.jpg -fx "(u+$i*v)/$[$i+1]" avg.jpg
fi
i=$[$i+1]
done
答え3
convert darky1.jpg darky2.jpg lighty1.jpg lighty2.jpg -evaluate-sequence Mean avg.ppm
注意: これにより、すべての画像が一度にメモリに読み込まれます。