Maison  >  Article  >  Méthode de lecture Open CV VideoCapture

Méthode de lecture Open CV VideoCapture

王林
王林avant
2024-02-10 18:06:08678parcourir

PHP Editor Banana présente aujourd'hui une méthode pour ouvrir CV VideoCapture et le lire. Dans le domaine de la vision par ordinateur, VideoCapture est une classe couramment utilisée pour lire des images à partir de fichiers vidéo ou de caméras. En utilisant la classe VideoCapture, nous pouvons facilement obtenir le flux vidéo et effectuer un traitement et une analyse d'image ultérieurs. Dans cet article, nous détaillerons comment utiliser la classe VideoCapture pour ouvrir et lire des fichiers vidéo ou des images de caméra. Que vous soyez débutant ou développeur expérimenté, vous pouvez lire cet article pour apprendre à utiliser la classe VideoCapture pour traiter des données vidéo. Nous allons jeter un coup d'oeil!

Contenu de la question

J'utilise une application appelée Android Studio pour écrire tout mon code. J'ai écrit le code suivant :

mat fieldimage = new mat();
videocapture.read(fieldimage);

Mais la méthode read de l'objet videocapture renvoie une valeur booléenne. Donc (si j'ai raison), ce code devrait générer une erreur. Cependant, Android Studio ne génère pas d’erreur. Ce code renvoie-t-il une erreur ? Si oui, ce code pourrait-il le remplacer ?

Mat fieldImage = new Mat();
boolean finishedCapturing =  videoCapture.read(fieldImage);
while(!finishedCapturing) {
finishedCapturing =  videoCapture.read(fieldImage);
}

Solution de contournement

Tout d'abord, si une méthode a une valeur de retour, vous n'avez pas besoin d'obtenir la valeur. Tout IDE ne génère généralement pas d’erreur si vous n’obtenez pas la valeur de retour. Mais si une méthode vous donne une valeur de retour, vous devez l'accepter et la gérer comme prévu par la méthode.

Pour votre cas, le javadoc de videocapture indique que la valeur de retour indique si l'image peut être capturée.

Donc dans votre cas, vous pouvez faire quelque chose comme ça

Mat fieldImage = new Mat();
boolean hasReadFrame = true;
// Have a do-while loop to only have once the read call
do {
    // Check if a frame has read
    hasReadFrame =  videoCapture.read(fieldImage);
    // after reading, you could do some more logic with the fieldImage
} while (hasReadFrame);

Bien sûr, vous devrez ajouter une gestion des erreurs/exceptions si nécessaire.

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer