Ho provato a utilizzare BackgroundSubtractorMOG per rimuovere lo sfondo ma ci sono alcuni oggetti che hanno già lasciato il frame ma il risultato di BackgroundSubtractorMOG.apply() mostra ancora che l'oggetto è ancora sul scena.BackgroundSubtractorMOG mantiene ancora l'oggetto dopo aver lasciato il frame
Ecco il mio codice
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
Ho anche provato BackgroundSubtractorMOG con parametri personalizzati (storia = 200, nmixtures = 5, ratio = 0,8), ma risultato è lo stesso. Ho fatto qualcosa di sbagliato o qualche raccomandazione? Per favore aiuto.
Sto avendo lo stesso problema. Il parametro della cronologia è apparentemente ignorato. L'utilizzo di due valori diversi produce esattamente la stessa immagine. Penso che il parametro history sia predefinito a 0, il che significa che l'immagine di sfondo iniziale è l'unica immagine utilizzata e l'algoritmo non impara mai. – RussellStewart