我有几个视频序列表现出光强度闪烁(在荧光光源下)。 这是由于快门速度和/或采样率不是电频率的整数倍。例如 - 以1/50秒的快门速度拍摄视频,电子频率为60Hz。
一般而言 - 我需要在不知道采样率,电频率,视频帧率的情况下解决这个问题。我只是看到了闪烁,需要修复它们。
视频场景也包括移动物体(有些移动速度慢,有些速度与闪烁导致的强度快速变化一样快)。
有没有一种众所周知的处理这种闪烁的方法?
谢谢!
答案 0 :(得分:4)
消除闪烁的常用方法如下。观察连续帧之间的差异图像,闪烁应该表现为沿图像垂直轴的强周期信号。因此,它应该在频域中具有强系数。因此,通过在频域中找到表示差异图像中的闪烁的系数,使它们无效并转换回空间域,可以检测和消除闪烁。
在伪代码中,此算法如下所示:
imDiff = I_{t+1} - I_t (Compute the difference between subsequent video frames)
imDiff = FilterImDiff(imDiff)
imDiffRowSum = RowSum(imDiff) (summing the rows of the diff image)
dctCoef = DiscreteCosineTransform(imDiffRowSum)
flickeringDctCoef = SomeHeuristicToFindFlickeringCoef(dctCoef)
flickeringIm = CloneColumn(InverseDiscreteCosineTransform(fixedDctCoef), numCols)
fixedimDiff = imDiff - flickeringIm
fixedI_{t+1} = I_{t+1} + fixedimDiff
其中: