Je suis en train de capturer un fichier avi et de le traiter. Mon code a fonctionné pendant un certain temps sans problème mais maintenant il ne semble pas s'arrêter après la capture de la dernière image de la vidéo. Au lieu de cela, il revient en boucle au début de la vidéo. Je ne comprends pas pourquoi cela se produit et je ne vois pas ce qui pourrait changer dans Eclipse ou OpenCV. J'ai essayé le même code sur mon PC Ubuntu avec la même vidéo et cela fonctionne sans problème. J'ai même essayé de réinstaller l'OS et les applications sans succès.
Exemple de code :
#include "opencv2/opencv.hpp"
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
Mat frame;
VideoCapture capture;
const string inputVideo = argv[1];
char buff[PATH_MAX];
getcwd( buff, PATH_MAX );
std::string fileName( buff );
fileName.append("/");
fileName.append(inputVideo);
capture.open(inputVideo);
while(true)
{
capture >> frame;
if(!frame.empty())
{
imshow("frame", frame);
}
else
{
printf(" --(!) No captured frame -- Break!");
break;
}
int key = waitKey(10);
if((char)key == 'c')
{
break;
}
}
return 0;
}
Je l'exécute sur un Mac OS X (10.8.2), avec Eclipse Juno et OpenCV 2.4.3.
Tout conseil ou commentaire est apprécié. Merci d'avance