This article is based on OpenCV Documentation with 2 additional features:
- Ability to get video source from argument
- Ability to capture video from webcam
I am using video file by ISE Lab, CVC Barcelona and MOG as the algorithm.
Source code:
import cv2
import argparse
ap = argparse.ArgumentParser()
ap.add_argument("-v", "--video",
help = "path to the (optional) video file")
args = vars(ap.parse_args())
if not args.get("video", False):
cap = cv2.VideoCapture(0)
else:
cap = cv2.VideoCapture(args["video"])
fgbg = cv2.BackgroundSubtractorMOG()
while True:
ret, frame = cap.read()
fgmask = fgbg.apply(frame)
cv2.imshow('frame',fgmask)
k = cv2.waitKey(30) & 0xff
if k == 27:
break
cap.release()
cv2.destroyAllWindows()
Result:
Original frame sample:

BackgroundSubtractorMOG frame sample:
