【问题标题】:OpenCV: Effective way to automatically set NoiseSigma in BackgroundSubtractorMOGOpenCV:在 BackgroundSubtractorMOG 中自动设置 NoiseSigma 的有效方法
【发布时间】:2017-07-10 20:21:30
【问题描述】:
我正在尝试制作一个程序来检测闭路电视录像中的人物,我已经取得了很大进展。不幸的是,视频中的噪音量在不同的相机和一天中的时间之间变化很大,因此对于每个示例视频。这意味着所需的 NoiseSigma 在 1-25 之间变化。
我使用了 fastNlMeansDenoisingColored 函数,这有点帮助,但 NoiseSigma 仍然是个问题。
循环播放一次视频是否有效,并以某种方式了解视频的嘈杂程度并建立噪声与 NoiseSigma 的关系?欢迎任何想法。
【问题讨论】:
标签:
opencv
noise
background-subtraction
【解决方案1】:
我认为如果没有不含任何噪声的参考数据,就无法确定图像(或视频)中的噪声水平。我想到的一件事是记录一些静态场景并测量所有帧之间的差异,然后尝试找到测量值和 NoiseSigma 之间的某种关系(希望是线性的)。如果没有噪音,则帧之间的累积差异将为 0。累积差异我的意思是这样的:
for i=1, i<frames.count(), ++i
{
cumulativeError += sum(abs(frame(i) - frame(i-1)))
}
cumulativeError/=frames.count()
其中 sum 将图像(帧)的所有元素相加以产生标量值。
请记住,我在这里只是遵循我的直觉,这不是我以前见过的方法。