14.【opencv打开视频以及摄像头】

(一)、三个APL:

1.认识三个apl

1.1VideoCaptrue类(获取视频设备)

VideoCaptrue,是c++的一个类,我们在调用它时,要先进行实列化。
通常实列化之后直接取0;

VideoCapture  cap(0); //  VideoCapture,是一个类,有多个构造函数,用0即可

1.2 read 读取视频帧

read(),目的是为了读取我们视频的帧率,有两种格式都可以读取帧率

VideoCapture  cap;
Max fram;
cap >> fram;
VideoCapture  cap;
Max fram;
cap.read(fram);  

1.3 release 释放视频

目的时在程序结束后释放掉,其基本格式为

VideoCapture  cap;
cap.release();

(二)、waitKey()等待键盘

1.什么是waiKey()?

是指给定一个时间内等待用户按键触发,不和cin连用.类型为int,以毫秒为单位

2.为什么要用waitKey()?

在我们进行判断语句中、while循环中可以利用waitKey(),进行语句判断

3.在while()语句中怎么用?

在C++中,我们通常格式为:按esc进行退出.

if(waitKey(100)==27)break;

(三)、实战项目

基本思路为: 先创建window窗口(namedWindow),然后获取视频设备
ViodeCapture cap(0).其次输出窗口(imshow()),最后释放窗口.

代码展示:

#include <iostream>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main()
{
	Mat fram1;
	int x;
	//创建窗口
	namedWindow("视频", WINDOW_AUTOSIZE);   
	//获取视频设备   VideoCapure  一个类
	VideoCapture  cap(0); //  VideoCapture,是一个类,有多个构造函数,用0即可
	while (1)
	{
		//cap >> fram;
		cap.read(fram1);      //读取视频帧
		imshow("视频", fram1);
		if(waitKey(100)==27)break;
	}
	cout << "已经退出程序!" << endl;
	cap.release();
	return 0;

}

效果展示:

在这里插入图片描述

(三、opencv打开美女热舞文件)

1.VideoCapture类

此时此刻我们需要改变对象中的cap(0)。改成cap("文件地址“)。

VideoCapture  cap("C:\\Users\\22612\\Pictures\\Screenshots\\美女热舞.mp4");

2.我们需要改变什么?

对于固定的if(waitKey(100)==27)-------->if(waitkey(25)==27)

if (waitKey(25) == 27)break;

3.实战项目:

3.1、代码展示:

#include <iostream>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main()
{
	Mat fram1;
	int x;
	namedWindow("视频", WINDOW_AUTOSIZE);
	VideoCapture  cap("C:\\Users\\22612\\Pictures\\Screenshots\\美女热舞.mp4");
	while (1)
	{
		//cap >> fram;
		cap.read(fram1);    
		imshow("视频", fram1);
		if (waitKey(25) == 27)break;
	}
	cout << "已经退出程序!" << endl;
	cap.release();
	return 0;

}

3.2、效果展示:

(视频效果、无不良印象)
在这里插入图片描述

4.原视频

…加载不出…

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吉士先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值