0

我需要知道有没有一种方法可以删除直播网络摄像头的背景。 有一种称为背景减法器的方法。如果有人知道使用它,请帮我解决这个问题..

4

1 回答 1

0

如果您已经有背景图像,则可以计算

我 - 乙

其中 I 是图像,B 是背景(例如图像)

乙 - 我

也会起作用。

由于图像不存储负数,您可能希望将这两者结合使用

(I - B) + (B - I)

并将结果转换为灰度。

我发现效果更好的方法是使用傅立叶变换来做到这一点。

IE:

F^-1(F(I) - F(B))

例如

    CvInvoke.cvDFT(video.Convert<Gray, Single>().Ptr, DFT.Ptr, Emgu.CV.CvEnum.CV_DXT.CV_DXT_FORWARD, -1);
    CvInvoke.cvDFT(Background.Convert<Gray, Single>().Ptr, DFTBack.Ptr, Emgu.CV.CvEnum.CV_DXT.CV_DXT_FORWARD, -1);

    CvInvoke.cvDFT((DFTBack - DFT).Convert<Gray, Single>().Ptr, originalLeft.Ptr, Emgu.CV.CvEnum.CV_DXT.CV_DXT_INVERSE, -1);
    CvInvoke.cvDFT((DFT - DFTBack).Ptr, originalRight.Ptr, Emgu.CV.CvEnum.CV_DXT.CV_DXT_INVERSE, -1);

这在前景部分半透明时效果很好。

还有内置的前景检测器

于 2013-07-24T03:03:42.503 回答