Python 设置函数cv2.createBackgroundSubtractorMOG2()的初始背景

Python 设置函数cv2.createBackgroundSubtractorMOG2()的初始背景,python,opencv,background-subtraction,Python,Opencv,Background Subtraction,关于cv2.createBackgroundSubtragtorMOG2()的简短问题 我有两个视频文件,一个包含背景,没有移动的物体。第二种是移动对象 这里的问题是,是否有可能在opencv的功能中设置背景帧,或者是否需要通过将第一幅图像转换为灰度,然后从运动对象所在的每一帧获取absdiff来获得自己的编码 import cv2 cap = cv2.VideoCapture("PATH") fgbg = cv2.createBackgroundSubtractorMOG2() wh

关于cv2.createBackgroundSubtragtorMOG2()的简短问题

我有两个视频文件,一个包含背景,没有移动的物体。第二种是移动对象

这里的问题是,是否有可能在opencv的功能中设置背景帧,或者是否需要通过将第一幅图像转换为灰度,然后从运动对象所在的每一帧获取absdiff来获得自己的编码

import cv2

cap = cv2.VideoCapture("PATH")

fgbg = cv2.createBackgroundSubtractorMOG2()  

while True:

    ret, frame = cap.read()  

    if ret:
        gray = cv2.cvtColor(frame, cv2.COLOR_RGB2YCrCb)
        fgmask = fgbg.apply(gray, learningRate = 0.05)  
    else: 
        break
cap.release()
cv2.destroyAllWindows()
我知道.apply()函数中的学习率是背景学习的参数,但我想将其设置为0并拥有自己的背景。
如果可能的话,我们可以从opencv附带的背景减法器中分析更多具有相同背景帧的视频。

apply
也会更新模型(并且使用
learningRate=1.0
会根据当前帧完全重置它)。。。所以,先在后台运行它,只运行视频,然后就可以了。谢谢,我会试试你的方法!