VideoCapture in OpenCV verwendet einen Puffer zum Speichern erfasster Frames. Obwohl dieser Puffer die Leistung steigert, kann er bei unsachgemäßer Handhabung zu Verzögerungen führen.
Für bestimmte Hardwarekonfigurationen bietet OpenCV die Eigenschaft CV_CAP_PROP_BUFFERSIZE. Durch Festlegen dieser Eigenschaft können Sie die Puffergröße steuern und so die Ansammlung alter Frames reduzieren.
Dieser Hackaround überwacht die Zeit genommen, um einen Frame abzurufen. Wenn die Zeit deutlich kürzer ist, wird davon ausgegangen, dass der Frame aus dem Puffer stammt, und er wird verworfen. Sobald die Zeit einen bestimmten Schwellenwert überschreitet, gilt der zurückgegebene Frame als aktuell.
Um Pufferakkumulation zu verhindern , kann ein dedizierter Thread mit grab() kontinuierlich Frames mit hoher Geschwindigkeit abrufen. Wenn der Haupt-Worker-Thread einen Frame benötigt, kann er ihn mithilfe eines Synchronisierungsmechanismus wie einem Spin-Lock aus diesem Puffer-Thread abrufen.
Das obige ist der detaillierte Inhalt vonWie kann man VideoCapture-Verzögerungen in OpenCV beseitigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!