主要是两种提取方式
1。KNN效果个人感觉要好一些
2.、’MOG
以KNN为例
import cv2
import matplotlib.pyplot as plt
import numpy as np
backsub = cv2.createBackgroundSubtractorKNN()
# backsub = cv2.createBackgroundSubtractorMOG2()
capture = cv2.VideoCapture('dance.mp4')
while True:
ret, frame = capture.read()
if frame is None:
break
fgmask = backsub.apply(frame)
# cv2.rectangle(frame,(10,2),(100,20),(255,255,255),-1)
# cv2.putText(frame,str(capture.get(cv2.CAP_PROP_FRAME_WIDTH)),(15,15),cv2.FONT_HERSHEY_SIMPLEX,0.5,(0,0,0))
newimage = cv2.bitwise_and(frame,frame,mask=fgmask)
total_image = np.hstack((frame,newimage))
cv2.imshow('image',total_image)
keyboard = cv2.waitKey(30)
if keyboard == 'q' or keyboard == 27:
break