Я работаю в лаборатории, и мы часто делаем таймлапс-серии (изображение каждый час) стволовых клеток. Текущая идея состоит в том, чтобы собрать все кадры вместе и сделать видео, показывающее эти растущие клетки (аналогично этому youtube. видео). Что можно сделать просто и круто, используя OpenCV + Python.
import numpy as np
import os
import cv2
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480))
timelapse_folder = '../myTimeLapse/'
for file in os.listdir(timelapse_folder):
frame = cv2.imread(timelapse_folder+file, 0)
out.write(frame)
out.release()
Но у нас есть проблема, что все изображения немного различаются по яркости, поэтому мы получаем мерцание в нашем выходном видео.
Мне не разрешено загружать видео, но вот несколько простых примеров, сгенерированных с помощью gimp для визуализации проблемы:
Это видео, которое я получаю из кадров
и это мое желаемое видео (было бы также здорово минимизировать мерцание, а не удалять его полностью)
Есть ли способ настроить гистограмму или яркость для всех изображений (или, может быть, между двумя изображениями), чтобы удалить мерцание с помощью OpenCV?
Спасибо за каждую идею или подсказку!
Изменить: последовательность gif, созданная по идее Эндрю (ответ ниже)
(max(np.average(arr, axis=2)))
. Затем вы проходите и пишете на видео? - person Andrew   schedule 07.09.2016max_avg = np.max(np.average(images, axis=2))
, а затем в цикле for для каждого кадраframe = (frame/max_avg)*255
, но это не устраняет мерцание. Или вы имеете в виду другой тип нормализации? - person Fabian   schedule 07.09.2016