代码如下:
// videoCaptureDemo.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
#include <iostream>
#include <opencv2\opencv.hpp>
using namespace cv;
using namespace std;
int main()
{
//视频保存位置
string outputVideoPath = "..\\images\\test.avi";
//打开摄像头
VideoCapture capture0(0);
VideoWriter outputVideo;
//获取当前摄像头的视频信息
cv::Size S = cv::Size((int)capture0.get(CV_CAP_PROP_FRAME_WIDTH),
(int)capture0.get(CV_CAP_PROP_FRAME_HEIGHT));
//打开视频路劲,设置基本信息 open函数中你参数跟上面给出的VideoWriter函数是一样的
outputVideo.open(outputVideoPath, -1, 30.0, S, true);
//CV_FOURCC('P','I','M','1')
if (!outputVideo.isOpened()) {
cout << "fail to open!" << endl;
return -1;
}
cv::Mat frameImage;
int count = 0;
while (true) {
//读取当前帧
capture0 >> frameImage;
if (frameImage.empty()) break;
++count;
//输出当前帧
cv::imshow("output", frameImage);
//保存当前帧
outputVideo << frameImage;
if (waitKey(1) == 27) break;
}
capture0.release();
outputVideo.release();
std::cout << "TotalFrame: " << count << std::endl;
}
注意:
1.打开vs,新建一个项目,文件--新建--项目--控制台应用项目,修改名称为videoCaptureDemo.点击确定。
2.在当前工程文件下新建image文件夹。
3.将上述代码复制,替换videoCaptureDemo.cpp中的原始代码。
4.点击属性管理器,将opencv的库在opencv中进行配置。详见opencv如何导入vs。参考https://blog.csdn.net/qq_41175905/article/details/80560429
5.ctrl+F5,运行demo
6.出现视频压缩窗口,选择全帧非压缩,点击“确定”,出现“output”窗口,开始录制视频。
7.鼠标点击"output"窗口,然后按“esc”,结束录制。
注意一定要先点击“output”窗口,让output窗口处于激活状态,而不是点击调试工作台命令行,否则会出现无法停止录制的问题。