Ich habe versucht, BackgroundSubtractorMOG zu verwenden, um den Hintergrund zu entfernen, aber einige Objekte haben den Rahmen bereits verlassen, aber das Ergebnis von BackgroundSubtractorMOG.apply() zeigt immer noch an, dass das Objekt immer noch auf dem Szene.BackgroundSubtractorMOG behält das Objekt, nachdem es den Rahmen verlassen hat
Hier ist mein Code
inputVideo = cv2.VideoCapture('input.avi')
fgbg = cv2.BackgroundSubtractorMOG()
while inputVideo.isOpened():
retVal, frame = inputVideo.read()
fgmask = fgbg.apply(frame)
cv2.imshow('Foreground', fgmask)
cv2.imshow('Original', frame)
if cv2.waitKey(1) & 0xFF == 27:
break
ich auch BackgroundSubtractorMOG mit benutzerdefinierten Parametern (Geschichte = 200, nmixtures = 5, Verhältnis = 0,8), aber Ergebnis ist das gleiche versucht haben. Habe ich etwas falsch gemacht oder irgendwelche Empfehlungen? Bitte helfen Sie.
ich das gleiche Problem. Der Protokollparameter wird scheinbar ignoriert. Die Verwendung von zwei verschiedenen Werten erzeugt genau das gleiche Bild. Ich denke, der History-Parameter ist standardmäßig auf 0 gesetzt, was bedeutet, dass das ursprüngliche Hintergrundbild das einzige verwendete Bild ist und der Algorithmus niemals lernt. – RussellStewart