上一讲中,我们对运动物体的检测使用了帧差法。今天小编来讲讲如何用背景减除法来检测视频中运动物体。
我们话不多说,直接上干货。
# 视频中运动检测
# 运动检测是视频处理中的一个重要应用。
# 视频背景减除
import cv2
cap = cv2.VideoCapture('./video/output_ffmpeg.mp4')
mog = cv2.bgsegm.createBackgroundSubtractorMOG()
# mog = cv2.createBackgroundSubtractorMOG2()
while(True):
ret, frame = cap.read()
if not ret:
break
fgmask = mog.apply(frame)
cv2.imshow('img',fgmask)
k = cv2.waitKey(10)
if k == 27:
break
cap.release()
cv2.destroyAllWindows()
opencv中有两个方法,一个createBackgroundSubtractorMOG,一个createBackgroundSubtractorMOG2。
第一个方法很经典,第二个方法虽然较新,但小编使用后发现出现了更多的噪点,效果反而不如第一个更好。
效果截图如下:

全部评论