2

我一直在进行 opencv mog 和 gmg 背景减法,我已经安装了 opencv 3.3.0

https://github.com/Itseez/opencv_contrib

还有来自同一版本的opencv,但我仍然找不到MOG不工作,而mog 2正在工作,

import numpy as np
import cv2

cap = cv2.VideoCapture(0)

fgbg = cv2.BackgroundSubtractorMOG()

while(1):
   ret, frame = cap.read()

   fgmask = fgbg.apply(frame)

   cv2.imshow('frame',fgmask)
   if cv2.waitKey(1) & 0xFF == ord('q'):
        break 

cap.release()
cv2.destroyAllWindows()

我收到以下错误消息

Traceback (most recent call last):
  File "back.py", line 6, in <module>
    fgbg = cv2.BackgroundSubtractorMOG()
AttributeError: 'module' object has no attribute 'BackgroundSubtractorMOG'
4

2 回答 2

0

fgbg = cv.createBackgroundSubtractorMOG() 对我也不起作用,但是还有另一个改进版本的背景减法,其工作原理类似于 fgbg = cv2.createBackgroundSubtractorMOG2()

于 2017-12-19T11:58:41.660 回答
0

问题是您没有调用正确的函数来创建背景减法器......

您可以按照教程(它适用于 3.0 版,但我找不到适用于 3.3 版的教程,但它是一样的)来更深入地解释如何使用它。

正如您在我提供的链接中看到的那样,您必须致电

fgbg = cv2.createBackgroundSubtractorMOG()

代替

fgbg = cv2.BackgroundSubtractorMOG()

然后其余的都是一样的。

于 2017-07-11T08:52:24.407 回答