Heim >Backend-Entwicklung >C++ >Warum verzögert sich mein OpenCV-VideoCapture und wie kann ich das beheben?
Bei der Videoaufnahme über eine Webcam kann es aufgrund des Aufnahmepuffers zu einer Verzögerung kommen Frames werden vor dem Lesen gespeichert. Dieses Problem tritt auf, wenn die Rate, mit der Frames gelesen werden, langsamer ist als die Rate, mit der sie erfasst werden, was zu einer Anhäufung von Frames im Puffer führt.
In OpenCV können Sie die Puffergröße eines VideoCapture-Objekts mit CV_CAP_PROP_BUFFERSIZE festlegen:
<code class="cpp">cv::VideoCapture cap; cap.set(CV_CAP_PROP_BUFFERSIZE, 3); // Store only 3 frames in the buffer</code>
Wenn die OpenCV-Lösung dies tut Wenn dies nicht funktioniert, können Sie diesen Hackaround verwenden:
Ein weiterer Hackaround besteht darin, einen dritten Thread zu verwenden, um Frames kontinuierlich mit hoher Geschwindigkeit zu erfassen, um den Puffer leer zu halten:
Das obige ist der detaillierte Inhalt vonWarum verzögert sich mein OpenCV-VideoCapture und wie kann ich das beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!