首页 > 解决方案 > 如何在没有滚动平均值的情况下使用 opencv createBackgroundSubtractorMOG2

问题描述

我一直在玩 python 中的 cv2 并且很好奇如何没有滚动平均值。看来,当我执行 bg_mog2.apply(frame) 时——我添加的每一帧不仅在进行背景减法运算——而且还将帧数据应用于背景模型。

我实际上正在寻找指定用作背景模型的帧数 - 并且只对未来的帧进行减法 - 而不是将这些帧添加到背景模型中。

import cv2 as cv
import numpy as np

cap = cv.VideoCapture("/somepath/depth_1_v001.mp4")

bg_mog2 = cv.createBackgroundSubtractorMOG2(history=1000, varThreshold=10, detectShadows=False)
while True:
    ret, frame = cap.read()

    if ret is True:
        mask = bg_mog2.apply(frame)

        cv.imshow("frame", frame)
        cv.imshow("mask", mask)

    key = cv.waitKey(30)
    if key == 27:
        break

cap.release()
cv.destroyAllWindows()```

标签: pythonopencv

解决方案


推荐阅读