opencv videowriter,我不知道为什么它不起作用

时间:2011-11-11 06:39:31

标签: opencv video-capture

我刚刚为录像机和录像机编写了第一个程序。我从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。 (我没有调谐卡或相机。)来源是

    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);

并改为

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

,错误的部分是:

        // add frame to recorded video

        record << frame; 

请告诉我我的错误是什么!

P.S。 当我删除行record << frame;时,它运行良好。我认为该行引起的错误。

我发现即使没有改变,wiki源程序也会犯同样的错误。

2 个答案:

答案 0 :(得分:0)

我看到的第一个错误是文件路径。你必须这样给他们:C:\\Users\\....

答案 1 :(得分:0)

请确保opencv_ffmpegXXX.dll正常工作