0

Как мы можем исправить передний план с использованием вычитателя фона mog в opencv-python? Я стараюсь, чтобы иметь более стабильный передний план, который может держать показывая передний план, как только он может правильно вычитать передний план от фона (например, исправление переднего плана в течение примерно 5 секунд) вот мой код:OpenCV - Исправление переднего плана в фоновом вычитателе MOG

cap = cv2.VideoCapture(0) 
history = 500 # or whatever you want it to be 
accelerate = 5 

fgbg = cv2.createBackgroundSubtractorMOG2(history=500, varThreshold=20, detectShadows=True) 

count=0 
while(1): 
    for i in (1, accelerate): 
     ret, frame = cap.read() 
    fgmask = fgbg.apply(frame, learningRate=1.0/history) 
    imageproc(fgmask,count) 

# time.sleep(5) 
    k = cv2.waitKey(0) & 0xff 
    if k == 27: 
     break 
cap.release() 
cv2.destroyAllWindows() 
+0

ли вам проверьте этот https://gist.github.com/lakshayg/3c23267527f3b2894398? Он основан на https://www.youtube.com/watch?v=KRKKektCcok –

+0

Нет, я не проверял, позвольте мне проверить, пожалуйста. это наивный вычитатель, это алгоритм, а также MOG? – Maryam

+0

Он просто меняет яркие объекты на белые и темные объекты на черный, что он делает? – Maryam

ответ

0
import numpy as np 
import cv2 
import time 

cap = cv2.VideoCapture('video.avi') 

fgbg = cv2.createBackgroundSubtractorMOG() 
while(1): 
    ret, frame = cap.read() 

    fgmask = fgbg.apply(frame) 

    cv2.imshow('frame',fgmask) 
    time.sleep(5) 
    k = cv2.waitKey(30) & 0xff 
    if k == 27: 
     break 

cap.release() 
cv2.destroyAllWindows() 
+0

Спасибо, я запускаю этот код, он ничего не показывает, а черный экран. – Maryam

+0

ops, некоторые опечатка. Он должен быть time.sleep (5) – VICTOR

+0

он также возвращает эту ошибку: NameError: name 'sleep' не определен – Maryam