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
convert darky1.jpg darky2.jpg lighty1.jpg lighty2.jpg -evaluate-sequence Mean avg.ppm
주의: 이렇게 하면 모든 이미지가 한 번에 메모리에 로드됩니다.