I am trying to use cv2.createBackgroundSubtractorMOG2 () method in Python. I have tried both on my Mac and on my Raspberry Pi, and get the same error when running the follow
Thanks for the comments all. It seems that createBackgroundSubtractorMOG2() hasn't been added to OpenCV 2.4, but it is present in master branch, which can be compiled from github.
I am finding that cv2.BackgroundSubtractor() is working for what I need at the moment.
See http://code.opencv.org/issues/2812#note-5 for more details.
According to https://docs.opencv.org/master/db/d5c/tutorial_py_bg_subtraction.html
You should use cv.bgsegm.createBackgroundSubtractorMOG()
I tested it on 3.4.0-dev and it worked.
Example Code:
import numpy as np
import cv2 as cv
cap = cv.VideoCapture('vtest.avi')
fgbg = cv.bgsegm.createBackgroundSubtractorMOG()
while(1):
ret, frame = cap.read()
fgmask = fgbg.apply(frame)
cv.imshow('frame',fgmask)
k = cv.waitKey(30) & 0xff
if k == 27:
break
cap.release()
cv.destroyAllWindows()
cv2.createbackgroundSubstractor()
works in cv 3.0 for 2.4.x use cv2.BackgroundSubstractor()
>>> import cv2
>>> cv2.__version__
>>> 3.2.0
>>>bg_model = cv2.BackgroundSubtractorMOG2(0, 10)
Traceback (most recent call last):
File "/home/manivannan/pythonexamle/opencv/Samples/hand-gesture-recognition-opencv/HandRecognition.py", line 233, in <module>
bg_model = cv2.BackgroundSubtractorMOG2(0, 10)
AttributeError: 'module' object has no attribute 'BackgroundSubtractorMOG2'
>>>bg_model = cv2.createBackgroundSubtractorMOG2(0, 10)
Use createBackgroundSubtractorMOG2 instead of BackgroundSubtractorMOG2 It's Working
Replace the create.... with
fgbg = cv2.BackgroundSubtractorMOG()
I'm using
>>> import cv2
>>> cv2.__version__
>>> 3.2.0
and python 2.7.12. While I tried to use cv2.createBackgroundSubtractorMOG() I received the same error message (also tried without "create..."). But I was surprised when I discovered cv2.createBackgroundSubtractorKNN() with the same functionality instead ... and the test code works :) 2 days I was confused and couldn't find where the problem is.