2011-11-11 142 views
0

我剛寫了一個videocaptur和videowriter的第一個程序。我從wiki中複製了源代碼,並更改了唯一的視頻文件名,但它造成了錯誤。opcv videowriter,我不知道爲什麼它不工作

這裏是wiki的來源。

opencv是2.1,編譯器是visual 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; 
} 

隨着來源,我改變了2部分。一個用於VideoCapture。 (我沒有tunercard或攝像頭)的來源是

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

,並改爲

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

,另一個是用於VideoWriter:

// record video 

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

,並改爲

​​

而部分錯誤是:

 // add frame to recorded video 

     record << frame; 

請告訴我什麼是我的錯!

P.S. 當我刪除行record << frame;,它運作良好。我認爲在線路上造成的錯誤。

而且我發現即使沒有改變,wiki源程序也會出現同樣的錯誤。

回答

0

我看到的第一個錯誤是文件路徑。你必須這樣給他們:C:\\Users\\....

0

請確保你opencv_ffmpegXXX.dll工作正確

相關問題