lecture vidéo à partir du fichier d'opencv
Salut, Alors j'ai écrit ce code pour capturer une vidéo à partir d'un fichier
#include <stdio.h>
#include <cv.h>
#include "highgui.h"
#include <iostream>
//using namespace cv
int main(int argc, char** argv)
{
CvCapture* capture=0;
IplImage* frame=0;
capture = cvCaptureFromAVI(char const* filename); //read AVI video
if( !capture )
throw "Error when reading steam_avi";
cvNamedWindow( "w", 1);
for( ; ; )
{
frame = cvQueryFrame( capture );
if(!frame)
break;
cvShowImage("w", frame);
}
cvWaitKey(0); //key press to close window
cvDestroyWindow("w");
cvReleaseImage(&frame);
}
Chaque fois que je le lance, j'obtiens l'erreur suivante:
CaptureVideo.cpp: In function ‘int main(int, char**)’:
CaptureVideo.rpc:13:28: erreur: primary-expression before ‘char’
Toute aide sera très appréciée.
Au lieu d'avoir
Ok j'ai utilisé le nom de la vidéo que je veux, mais ensuite j'ai eu cette erreur: mettre fin a appelé après avoir jeté une instance de 'const char*' Avorté (core dumped)
Probablement parce que vous êtes jeter un
Quel exception puis-je jeter à la place?
Vous pouvez jeter toute exception que vous voulez, mais votre problème est (probablement) que la vidéo ne s'ouvre pas (pour quelque raison que ce soit, j'ai présenté quelques causes probables).
char const* filename
, vous devez mettre le nom du fichier (ou une variable contenant), par exemple capture = cvCaptureFromAVI("myvideo.avi")
Ok j'ai utilisé le nom de la vidéo que je veux, mais ensuite j'ai eu cette erreur: mettre fin a appelé après avoir jeté une instance de 'const char*' Avorté (core dumped)
Probablement parce que vous êtes jeter un
const char*
si la vidéo ne s'ouvre pas... assurez-vous que le chemin d'accès est correct et que vous avez les bons codecs installés.Quel exception puis-je jeter à la place?
Vous pouvez jeter toute exception que vous voulez, mais votre problème est (probablement) que la vidéo ne s'ouvre pas (pour quelque raison que ce soit, j'ai présenté quelques causes probables).
OriginalL'auteur Ikemesit Ansa | 2012-12-04
Vous devez vous connecter pour publier un commentaire.
C'est le C++ question, alors vous devez utiliser l'interface C++.
Les erreurs dans votre code original:
char const*
danscvCaptureFromAVI
.ShowImage
ne fonctionne que si elle est suivie par WaitKey.isOpened
à la place.J'ai corrigé ton code et de le mettre dans l'interface C++, donc c'est un bon code C++ maintenant. Mon réécriture n', ligne par ligne, de même que votre programme n'.
Nous devons remplacer
if(!frame)
avec si( l'image.empty() )Je reçois
terminate called after throwing an instance of 'char const*' Aborted (core dumped)
Je pense qu'il vaut la peine de l'ouverture d'une question. Je vous suggère de vous y mettre aussi de l'environnement, de l'exacte version d'opencv, c++ version et le compilateur que vous utilisez.
stackoverflow.com/questions/35534292/opencv3-video-file-reading
OriginalL'auteur Barnabas Szabolcs