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 усредняет два изображения одновременно: текущее рассматриваемое изображение и результат предыдущего усреднения. Затем он переходит к следующему изображению.
Таким образом, вместо того, чтобы все изображения в последовательности имели одинаковый вес, более поздние изображения имеют больший вес. Это не дает результата, который все, использующие эту опцию, интуитивно ожидали бы. Также есть проблема, что все изображения должны быть загружены в память.
Решением обеих проблем является скрипт для рекурсивного вызова 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
Будьте осторожны: это приведет к одновременной загрузке всех изображений в память.