在调试模式和发布模式下运行opencd函数(VideoWriter)

时间:2014-07-24 20:13:39

标签: debugging opencv release

我正在尝试构建并运行下面的代码(Visual Studio 2013)。构建很好,但代码仅在调试模式下运行,但在发布模式下失败。我可以看到代码在尝试调用VideoWriter函数时停止,我认为它可能与文件权限有关。但是,为什么在调试模式下可以呢?这有点令人困惑。有人可以告诉我们这里发生了什么,或者我可以进一步尝试解决这个问题? 感谢。

#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main()
{
    VideoCapture cap(0);

    // Get size of frames
    Size S = Size((int)cap.get(CV_CAP_PROP_FRAME_WIDTH), (int)
        cap.get(CV_CAP_PROP_FRAME_HEIGHT));

    // Make a video writer object and initialize it at 30 FPS
    VideoWriter put("output.mpg", CV_FOURCC('M', 'P', 'E', 'G'), 30, S);

    if (!put.isOpened())
    {
        cout << "File could not be created for writing. Check permissions" << endl;
        return -1;
    }
    namedWindow("Video");

    // Play the video in a loop till it ends
    while (char(waitKey(1)) != 'q' && cap.isOpened())
    {
        Mat frame;
        cap >> frame;
        // Check if the video is over
        if (frame.empty())
        {
            cout << "Video over" << endl;
            break;
        }
        imshow("Video", frame);
        put << frame;
    }

    return 0;
}

0 个答案:

没有答案