0

Wie können wir Vordergrund mit Mog Hintergrund Subtrahierer in opencv-Python reparieren? Ich versuche, ein stabiler Vordergrund zu haben, der Vordergrund zeigt halten können, wenn sie richtig Vordergrund von Hintergrund (für ca. 5 Sekunden zum Beispiel fix Vordergrund) hier abziehen könnte, ist mein Code:OpenCV - Vordergrund im Hintergrundsubtrahierer reparieren 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

Bitte benutzen Sie überprüfen Sie diese https://gist.github.com/lakshayg/3c23267527f3b2894398 aus? Es basiert auf https://www.youtube.com/watch?v=KRKKektCcok –

+0

Nein, ich habe nicht überprüft, lassen Sie mich bitte überprüfen. das ist naive Subtrahierer, ist dieser Algorithmus so gut wie MOG? – Maryam

+0

Es ändert nur helle Objekte zu weißen und dunklen Objekten zu schwarz, was macht es? – Maryam

Antwort

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

Danke, ich führe diesen Code, er zeigt gar nichts, aber einen schwarzen Bildschirm. – Maryam

+0

ops, einige typo. Es sollte time.sleep (5) sein – VICTOR

+0

es gibt auch diesen Fehler zurück: NameError: Name "Schlaf" ist nicht definiert – Maryam