La capture de vidéo via une webcam peut impliquer un décalage dû au tampon de capture, où les images sont stockées avant d’être lues. Ce problème survient lorsque la vitesse à laquelle les images sont lues est plus lente que la vitesse à laquelle elles sont capturées, ce qui entraîne une accumulation d'images dans le tampon.
Dans OpenCV, vous pouvez définir la taille du tampon d'un objet VideoCapture à l'aide de CV_CAP_PROP_BUFFERSIZE :
<code class="cpp">cv::VideoCapture cap; cap.set(CV_CAP_PROP_BUFFERSIZE, 3); // Store only 3 frames in the buffer</code>
Si la solution OpenCV ne le fait pas Cela ne fonctionne pas, vous pouvez utiliser ce hackaround :
Un autre hackaround consiste à utiliser un troisième thread pour récupérer des images en continu à grande vitesse afin de garder le tampon vide :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!