ImageMagick을 사용하여 여러 이미지를 하나로 평균화하는 방법은 무엇입니까?

ImageMagick을 사용하여 여러 이미지를 하나로 평균화하는 방법은 무엇입니까?
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

그냥 사용그래픽Magick:gm convert -average *.JPG q.ppm

답변2

8년이 지난 지금도 이 문제는 StackExchange 제품군에서 만족스러운 답변을 얻지 못한 채 여전히 문제인 것 같습니다.

에서이 블로그 게시물:

ImageMagick의 -average 연산자는 두 개의 이미지, 즉 현재 고려 중인 이미지와 이전 평균화 결과의 평균을 한 번에 계산합니다. 그러면 다음 이미지로 넘어갑니다.

따라서 시퀀스의 모든 이미지가 동일한 가중치를 갖는 것이 아니라 이후 이미지의 가중치가 더 높습니다. 이는 이 옵션을 사용하는 모든 사람이 직관적으로 기대하는 결과를 제공하지 않습니다. 모든 이미지를 메모리에 로드해야 한다는 문제도 있습니다.

두 문제에 대한 해결책은 다음과 같이 이미지 쌍에 대해 재귀적으로 변환을 호출하는 스크립트입니다.

#!/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

ImageMagick 포럼에서:

convert darky1.jpg darky2.jpg lighty1.jpg lighty2.jpg -evaluate-sequence Mean avg.ppm

주의: 이렇게 하면 모든 이미지가 한 번에 메모리에 로드됩니다.

관련 정보