Vous avez rencontré un problème de décalage avec VideoCapture d'OpenCV en raison de l'accumulation d'images dans le tampon de capture. Pour contourner le problème, vous avez eu recours à la lecture du tampon à 30 ips pour l'effacer rapidement.
OpenCV fournit un moyen de définir manuellement la taille du tampon. :
<code class="cpp">cv::VideoCapture cap; cap.set(CV_CAP_PROP_BUFFERSIZE, 3); // store only 3 frames</code>
Cependant, cette solution n'est supportée que par le backend DC1394 v 2.x.
Une alternative L'approche consiste à mesurer le temps nécessaire pour récupérer une image :
Vous pouvez créer un troisième thread qui récupère continuellement des images à grande vitesse en utilisant cv ::VideoCapture.grab() pour garder le tampon vide. Synchronisez l'accès entre ce thread et votre thread de travail à l'aide d'un spin-lock.
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!