【发布时间】:2015-12-18 05:24:41
【问题描述】:
我正在使用 OpenCV 3 和 Visual Studio。 这里的问题是,除了默认的全相机分辨率之外,我无法为任何特定分辨率保存视频。 没有错误,但视频文件没有增长。它保持在 5.54kb。
这是我的代码:
#include"opencv2\opencv.hpp"
using namespace cv;
using namespace std;
VideoCapture cap_cam1(0);
double Width = cap_cam1.get(CV_CAP_PROP_FRAME_WIDTH);
double Height = cap_cam1.get(CV_CAP_PROP_FRAME_HEIGHT);
cv::Size frameSize(static_cast<int>(Width), static_cast<int>(Height));
string videoFileName = "D://current.avi";
VideoWriter cam1_write(videoFileName, CV_FOURCC('D', 'I', 'V', '3'), 10.0, frameSize, true);
Mat image;
int main()
{
while (true)
{
cap_cam1 >> image;
resize(image, image, Size(320, 240));
imshow("image", image);
cam1_write.write(image);
if (waitKey(33) == 27)break;
}
}
如果我删除resize 函数,那么文件大小会增加并添加帧。
我还尝试在VideoWriter 定义后添加以下行
cap_cam1.set(CV_CAP_PROP_FRAME_WIDTH, 240);
cap_cam1.set(CAP_PROP_FRAME_HEIGHT,320);
在所有文件大小保持在 5.54kb 之后,我还尝试在 VideoWriter 定义处更改分辨率。
如何以自定义分辨率录制视频?
【问题讨论】:
-
您是否混淆了 240x320 和 320x240 分辨率?
-
而不是
VideoWriter cam1_write(videoFileName, CV_FOURCC('D', 'I', 'V', '3'), 10.0, frameSize, true);使用VideoWriter cam1_write(videoFileName, CV_FOURCC('D', 'I', 'V', '3'), 10.0, cv::Size(320,240), true);使用那里的目标大小(您要调整到的大小)... VideoWriter 只允许写入一个目标大小。
标签: c++ opencv visual-studio-2012 image-processing video-recording