栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

OpenCV库编写打开摄像头压缩视频的程序

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

OpenCV库编写打开摄像头压缩视频的程序

目录
  • 一、设备连接
    • 二、播放视频
    • 三、录制视频
    • 参考博客

一、设备连接

检查开启状态;
win+r键并输入services.msc

检查VMware USB Arbitration Service是否开启;

②打开摄像头

二、播放视频

创建一个test2.cpp文件

并加入以下代码:

#include 
using namespace cv;
int main()
{
	//从摄像头读取视频
	VideoCapture capture("1.mp4");
	//循环显示每一帧
	while(1){
		Mat frame;//定义一个Mat变量,用于存储每一帧的图像
		capture >> frame;//读取当前帧
		if(frame.empty())//播放完毕,退出
			break;
		imshow("读取视频帧",frame);//显示当前帧
		waitKey(30);//掩饰30ms
	}
	system("pause");
	return 0;
}


编译 test2.cpp 文件;

问题:
这里输出时会报错:

这是因为linux不认识 system(“pause”); 这条语句,
改为:
添加:

#include 

并将

system("pause");

改为

pause();

即可在linux系统下实现保留控制台的效果。
输出结果:

三、录制视频

添加文件test3.cpp

添加以下代码:

#include
#include 
#include
#include
using namespace cv;
using namespace std;

int main()
{
	//打开电脑摄像头
	VideoCapture cap(0);
	if (!cap.isOpened())
	{
		cout << "error" << endl;
		waitKey(0);
		return 0;
	}

	//获得cap的分辨率
	int w = static_cast(cap.get(CV_CAP_PROP_frame_WIDTH));
	int h = static_cast(cap.get(CV_CAP_PROP_frame_HEIGHT));
	Size videoSize(w, h);
	VideoWriter writer("RecordVideo.avi", CV_FOURCC('M', 'J', 'P', 'G'), 25, videoSize);
	
	Mat frame;
	int key;//记录键盘按键
	char startOrStop = 1;//0  开始录制视频; 1 结束录制视频
	char flag = 0;//正在录制标志 0-不在录制; 1-正在录制

	while (1)
	{
		cap >> frame;
		key = waitKey(100);
		if (key == 32)//按下空格开始录制、暂停录制   可以来回切换
		{
			startOrStop = 1 - startOrStop;
			if (startOrStop == 0)
			{
				flag = 1;
			}
		}
		if (key == 27)//按下ESC退出整个程序,保存视频文件到磁盘
		{
			break;
		}

		if (startOrStop == 0 && flag==1)
		{
			writer << frame;
			cout << "recording" << endl;
		}
		else if (startOrStop == 1)
		{
			flag = 0;
			cout << "end recording" << endl;
			
		}
		imshow("picture", frame);
	}
	cap.release();
	writer.release();
	destroyAllWindows();
	return 0;
}


编译:

输出结果:

参考博客

https://blog.csdn.net/ssj925319/article/details/109231145

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/330225.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号