背景差分, python, mog, gmg, opencv3.1

ネットで書かれているものだとそのまま使えなかったのでちょっとだけ.
bgsegmを追加しただけですが.
mog2は何故か上手くいかなかったのでなし.

環境

Python 3.5.2
opencv ‘3.1.0’

check方法 (python)

$ python --version
Python 3.5.2 :: Anaconda 2.4.1 (x86_64)

check方法 (opencv)

$ python
Python 3.5.2 |Anaconda 2.4.1 (x86_64)| (default, Jul  2 2016, 17:52:12) 
[GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2 
>>> cv2.__version__
'3.1.0'

codes

# coding=utf-8
import cv2
cap = cv2.VideoCapture(0)
fgbg = cv2.bgsegm.createBackgroundSubtractorMOG()

while True:
    ret, src = cap.read()
    fgmask = fgbg.apply(src, learningRate=0.01)
    dst = src.copy()
    dst = cv2.bitwise_and(src, src, mask=fgmask)

    cv2.imshow('frame',dst)

    k = cv2.waitKey(30) & 0xff
    if k == 27:  # ESC key
        break
cap.release()
cv2.destroyAllWindows()
# coding=utf-8
import cv2
cap = cv2.VideoCapture(0)
fgbg = cv2.bgsegm.createBackgroundSubtractorGMG()

while True:
    ret, src = cap.read()
    fgmask = fgbg.apply(src, learningRate=0.01)
    dst = src.copy()
    dst = cv2.bitwise_and(src, src, mask=fgmask)

    cv2.imshow('frame',dst)

    k = cv2.waitKey(30) & 0xff
    if k == 27:  # ESC key
        break
cap.release()
cv2.destroyAllWindows()

results

mog
https://youtu.be/GSFa-6DObLI

gmg
https://youtu.be/Qaq1Y8w5Bjk

refs

http://docs.opencv.org/3.1.0/db/d5c/tutorial_py_bg_subtraction.html
http://answers.opencv.org/question/77435/cannot-find-backgroundsubtractormog-and-backgroundsubtractorgmg-in-opencv-30-with-python-27/

check opencv ver
http://qiita.com/PeaceAndHiLight/items/8372c5719ca73aa11d46