我在实验室工作,我们经常制作干细胞的延时系列(每小时图像)。目前的想法是将所有帧放在一起并制作一个视频来展示这个正在生长的细胞(类似于这个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 生成的简单示例来可视化问题:
那是我从帧中得到的视频
这就是我想要的视频(最好尽量减少闪烁而不是完全删除它)
有没有办法调整所有图像(或可能在 2 个图像之间)的直方图或亮度,以使用 OpenCV 消除那些闪烁?
感谢您的每一个想法或提示!
编辑:安德鲁的想法产生的gif序列(下面的答案)