opencv调用影视设备

  • (一)、三个APL:
    • 1.认识三个apl
      • 1.1VideoCaptrue类(获取视频设备)
      • 1.2 read 读取视频帧
      • 1.3 release 释放视频
  • (二)、waitKey()等待键盘
    • 1.什么是waiKey()?
    • 2.为什么要用waitKey()?
    • 3.在while()语句中怎么用?
  • (三)、实战项目
    • 代码展示:
    • 效果展示:
  • (三、opencv打开美女热舞文件)
    • 1.VideoCapture类
    • 2.我们需要改变什么?
    • 3.实战项目:
      • 3.1、代码展示:
      • 3.2、效果展示:
    • 4.原视频

(一)、三个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.原视频

…加载不出…

14.【opencv打开视频以及摄像头】相关推荐

  1. Qt+OpenCV打开视频文件并在窗口界面上显示

    Qt+OpenCV打开视频文件并在窗口界面上显示 1.新建一个Qt Widgets Application,工程配置文件(.pro文件)内容如下: #------------------------- ...

  2. OpenCV捕获视频和摄像头

    从文件中捕获视频 其实使用OpenCV读取视频相当简单,只需要初始化一个VideoCapture对象,打开视频文件,逐帧读取. 程序 下面是简单的OpenCV代码: 1 2 3 4 5 6 7 8 9 ...

  3. Opencv打开内置摄像头

    Opencv中VideoCapture是专门用来处理视频文件或者摄像头视频流的类,详细的说明和用法可以参考Opencv2.4.13的说明文档:点击打开链接 使用VideoCapture打开内置摄像头的 ...

  4. opencv计算视频和摄像头的帧数及帧率(FPS)

    1.计算总帧数 python代码 import cv2video_cap = cv2.VideoCapture('video1.mp4')frame_count = 0 all_frames = [] ...

  5. 如何用python+openCV打开电脑的摄像头?

    1)安装OpenCV: pip install opencv 2)打开摄像头,获取视频流,显示在窗口上 import cv2 as cv# 0是代表摄像头编号,只有一个的话默认为0 capture = ...

  6. opencv打开手机网络摄像头

    工具:WIN 7+opencv3.0+VS2013 手机安装'IP摄像头APP'(手机搜索"IP摄像头"即可) 我下载的APP 可以看到ip地址为"http://192. ...

  7. VS2019+OpenCV打开大华摄像头

    1.将压缩包里面的Bin.Depends.Include.Src文件夹放入项目解决方案同级目录下. 2.打开项目属性管理器 ①:找到配置属性->常规,设置输出目录为 .\Bin\x64\debu ...

  8. opencv打开摄像头、录制视频

    目录 一.参考: 1.运行代码:Opencv2.4学习::摄像头读取&&视频写入: 1.opencv读取视频,摄像头,保存视频代码 (2012-10-18 21:25:26) 1.Op ...

  9. opencv打开摄像头采集和保存

    纯粹是自娱自乐,并没有对opencv的使用进行深入的学习,用opencv打开视频文件或者打开摄像头采集,然后保存,这也是最基础的东西. 一.安装配置环境 VS2008下安装配置opencv,2005. ...

最新文章

  1. html5 list css,使用HTML5的classList属性操做CSS类
  2. Linux qt 更新,Qt 5.15 Beta 2 发布,Qt 6之前的最后一个重大更新
  3. 全新思路!阿里达摩院将Transformer引入在线行为检测!ICCV2021
  4. 用c语言编程求分数和,用C语言编程平均分数
  5. 高可用高并发的 9 种技术架构!
  6. java 中文 语义分析,了解Javac编译器 - xinlan1964的个人页面 - OSCHINA - 中文开源技术交流社区...
  7. 软件工程专业的论文答辩_软件工程毕业论文答辩PPT模板
  8. 商场平面 html5,收集50张商场平面图,看购物中心动线规划
  9. 欣赏的心态去发现生活中的美
  10. 前端实现五子棋小游戏2(AI实现人机对战)
  11. 【Linux】创建、修改和删除用户组(groupadd | groupmod | groupdel)
  12. Android Studio导入外部资源的三种方式
  13. Eclipse插件开发GEF
  14. html5弹球游戏的实现,HTML5 Canvas 木板弹球小游戏/碰撞检测和反弹
  15. Phobos病毒家族最新变种.faust后缀勒索病毒活跃传播
  16. 【免费】捷微微信管家公众号运营培训开课啦!
  17. Ubuntu20.04 安装python3.7
  18. mysql所选路径已经存在_「mysql第二次安装不了」mysql安装失败怎么清理干净?
  19. STM32CubeIDE移植标准库
  20. UESTC 1601 艾尔大停电2 二维树状数组+区间更新

热门文章

  1. STM32CubeIDE用DAP调试的超级无敌简单方法——2022.01.07
  2. 利用svn的blame功能查出代码的每一行是谁写/改的
  3. linux jdk卸载
  4. MAC JDK 卸载方法、环境配置
  5. i39 1.6 [TNT] 特别版 Mac iPhone 手机铃声制作软件
  6. 3500/15 127610-01 本特利3500系列工业系统
  7. 二本考南方科技大学计算机,南方科技大学是一本还是二本大学
  8. MySQL中专门的关系运算
  9. C语言项目实践--公司人员管理系统
  10. vue字符串换行(绝对管用)