2013-06-30 128 views
0

我需要知道的是,是一種刪除直播流式網絡攝像頭背景的方法。有一種方法叫做背景減法器。如果有人知道使用的是請幫助我的問題..使用Emgu的Background Subtaction cv

+0

這不是[真正的問題(http://meta.stackexchange.com/questions/145677/what-is-a-real-question)。你有沒有嘗試解決你的問題?閱讀[常見問題]和[問] –

回答

0

如果你已經有背景的圖像,你可以只計算

我 - B

哪裏是圖像和B是背景(類型說,圖片)

B - 我

也將工作。

由於圖像不存儲負數,您不妨將這些都使用

(I - B)+(B - I)

和轉換結果爲灰度。

我發現更好的方法是使用傅里葉變換來實現。

即:

˚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); 

這種運作良好當前景是部分半透明的。

另外還有內置的Foreground detector