我正在尝试构建并运行下面的代码(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;
}