OpenCV开发教程之运动物体检测(背景减除法)

13人浏览 / 0人评论 / 添加收藏

上一讲中,我们对运动物体的检测使用了帧差法。今天小编来讲讲如何用背景减除法来检测视频中运动物体。

我们话不多说,直接上干货。

# 视频中运动检测
# 运动检测是视频处理中的一个重要应用。
# 视频背景减除
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。

第一个方法很经典,第二个方法虽然较新,但小编使用后发现出现了更多的噪点,效果反而不如第一个更好。

效果截图如下:

全部评论