2011-11-11 4 views
0

Je viens d'écrire un premier programme pour videocaptur et videowriter. J'ai copié la source du wiki et changé le seul nom du fichier vidéo, mais il a fait une erreur.opcv videowriter, je ne sais pas pourquoi ça ne marche pas

Voici la source du wiki.

L'opencv est 2.1 et le compilateur est visuel C++ 2008 express.

#include "cv.h" 
#include "highgui.h" 

using namespace cv; 

int main(int, char**) 

{ 

     VideoCapture capture(1); // open the default camera 

     if(!capture.isOpened()) { 

       printf("Camera failed to open!\n"); 

       return -1; 
     } 

     Mat frame; 

     capture >> frame; // get first frame for size 

     // record video 

     VideoWriter record("RobotVideo.avi", CV_FOURCC('D','I','V','X'), 30, frame.size(), true); 

     if(!record.isOpened()) { 

       printf("VideoWriter failed to open!\n"); 

       return -1; 

     } 

     namedWindow("video",1); 

     for(;;) 

     { 
       // get a new frame from camera 

       capture >> frame; 

       // show frame on screen 

       imshow("video", frame); 

       // add frame to recorded video 

       record << frame; 

       if(waitKey(30) >= 0) break; 

     } 

     // the camera will be deinitialized automatically in VideoCapture destructor 
     // the recorded video will be closed automatically in the VideoWriter destructor 

     return 0; 
} 

Avec la source, j'ai changé 2 parties. L'un est pour VideoCapture. (. Je n'ai pas tunercard ou un appareil photo) La source est

VideoCapture capture(1); // open the default camera 

et changé à

VideoCapture capture("C:/Users/Public/Videos/Sample Videos/WildlifeTest.wmv"); 

Et l'autre est pour Videowriter:

// record video 

    VideoWriter record("RobotVideo.avi", CV_FOURCC('D','I','V','X'), 30, frame.size(), true); 

et changé à

VideoWriter record("C:/Users/Public/Videos/Sample Videos/WildlifeRec.wmv", 
         CV_FOURCC('W','M','V','1'), 30,frame.size(), true); 

et la partie d'erreur est:

 // add frame to recorded video 

     record << frame; 

S'il vous plaît montrez-moi quelle est mon erreur!

P.S. lorsque je supprime la ligne record << frame;, cela fonctionne bien. Je pense que l'erreur causée à la ligne.

Et j'ai trouvé que même si sans changement, le programme source wiki fait la même erreur.

Répondre

0

La première erreur que je vois est les chemins de fichier. Vous devez leur donner comme ceci: C:\\Users\\....

0

s'il vous plaît assurez-vous que opencv_ffmpegXXX.dll fonctionne à droite

Questions connexes