#python #linux #image #image-processing #opencsv
#python #linux #изображение #обработка изображений #opencsv
Вопрос:
Я ищу способ объединить только различия изображений в одно изображение. Я ищу команду Linux или способ добиться этого с помощью python.
Пример: Исходные изображения:
Результат должен быть:
Другой вариант использования: http://3.bp.blogspot.com/-h3yuVc0hyvc/ToqQDE0Bf4I/AAAAAAAAGj0/HON-gM_9PhU/s1600/JayBumpOllieStichedFinishedRS.jpg
Спасибо!!
Винс
Комментарии:
1. Может быть, это может вам помочь? github.com/derv82/imgblend
Ответ №1:
Было бы разумно начать с изображения, содержащего только фон, и сравнить с ним каждый кадр. Фон может быть вычислен как медиана по всей последовательности. Если мы предположим, что фоновое среднее изображение было a0.jpg и следующие три кадра с 3 точками будут a1.jpg , a2.jpg и a3.jpg , затем их можно объединить вместе, используя функцию compare_images scikit-image и изменяя значения только в тех пикселях, где было обнаружено изменение. Обратите внимание, что из-за сжатия существует порог допуска (th), установленный на 0,1. Вы можете играть с этим значением (0,1) для большей или меньшей чувствительности. Следующий скрипт должен привести к чему-то подобному:
import skimage.io as io
from skimage.util import compare_images
import numpy as np
im0 = io.imread('a0.jpg') # median of source images
im1 = io.imread('a1.jpg') # source image 1
im2 = io.imread('a2.jpg') # source image 2
im3 = io.imread('a3.jpg') # source image 3
im_all = np.copy(im0)
th = 0.1
# d = np.max(np.abs(im2 - im0), -1)
d = compare_images(im1, im0, method='diff')
d= np.max(np.abs(d), -1)
im_all[d>th] = im1[d>th]
io.imsave("d1.jpg", d>th)
d = compare_images(im2, im0, method='diff')
d= np.max(np.abs(d), -1)
im_all[d>th] = im2[d>th]
io.imsave("d2.jpg", d>th)
d = compare_images(im3, im0, method='diff')
d= np.max(np.abs(d), -1)
im_all[d>th] = im3[d>th]
io.imsave("d3.jpg", d>th)
io.imsave("im_all.jpg", im_all)
Ответ №2:
Это не совсем то, что я просил, но оно делает работу достаточно хорошо для моих нужд:
convert 1.jpg 2.jpg 3.jpg -evaluate-sequence max evalresult.png
С примером изображения с облаками это работает не очень хорошо (потому что облака белые), но в другом контексте это здорово (когда различия ярче фона)
Комментарии:
1. Если вы с удовольствием используете ImageMagick , а не Python , который вы отметили, вы можете лучше работать с
convert [12].jpg -compose DarkenIntensity -composite 3.jpg -composite result.png