OpenCV+VS2019打开和关闭电脑摄像头
关于OpenCV和VS2019的配置,请参考博客以前的连接。
OpenCV中主要使用videocapture来打开和关闭摄像头
https://docs.opencv.org/master/d8/dfe/classcv_1_1VideoCapture.html#afb4ab689e553ba2c8f0fec41b9344ae6
上述连接时OpenCV官网对于这个类的功能描述
定义
class cv::VideoCapture
构造函数,有三种
//功能:创建一个VideoCapture类的实例,如果传入对应的参数,可以直接打开视频文件或者要调用的摄像头。
cv::VideoCapture::VideoCapture()cv::VideoCapture::VideoCapture(const String& filename, int apiPreference = CAP_ANY) //filename – 打开的视频文件名。cv::VideoCapture::VideoCapture(int index,int apiPreference = CAP_ANY) //index – 打开的视频捕获设备id ,如果只有一个摄像头可以填0,表示打开默认的摄像。//后面两个参数可以不用管它
摄像头打开与关闭
virtual bool isOpened () const //视频成功初始化,返回truevirtual bool open (const String &filename)//通过video capturing打开视频文件或摄像头virtual bool open (int index) //通过摄像头打开视频,默认为0,如果是带前置摄像头的电脑,一般为前置摄像头。
但实际使用时,如下:
VideoCapture capture;//初始化一个VideoCapture实例,名字叫做capturecapture.open("111.avi");//利用初始化的capture,打开视频"dog.avi"capture.open(0);//利用初始化的capture,打开ID为0的摄像头,一般有前置摄像头的笔记本电脑,默认打开该摄像头。capture.release();//关闭视频文件或者摄像头
不过我建议使用最多的方式如下:
VideoCapture capture(0);//初始化一个VideoCapture实例,名字叫做capture,并打开设备0的摄像头
读取视频帧
VideoCapture& VideoCapture::operator>>(Mat& image);
bool VideoCapture::read(Mat& image);//该函数结合VideoCapture::grab()和VideoCapture::retrieve()其中之一被调用,用于捕获、解码和返回下一个视频帧。假如没有视频帧被捕获(相机没有连接或者视频文件中没有更多的帧)将返回false。
我建议使用如下方式:
Mat frame;//定义同一个mat变量,用来接收一帧图像
capture >> frame;//利用>>运算符,将capture的结果输出到frame里面去,就可以获得帧图像
read和上述这种方式选一种即可,不要两个都用
测试代码:
#include<opencv2/opencv.hpp>
#include<iostream>using namespace std;
using namespace cv;
int main()
{VideoCapture capture(0);int i=0;//cin >> stop;while(true) {i++;Mat frame;capture >> frame;imshow("读取视频",frame);cout << i << endl;if (i == 1000) {capture.release();break;}waitKey(30);}return 0;
}
代码中的i是为了能够测试release函数关闭摄像头
OpenCV+VS2019打开和关闭电脑摄像头相关推荐
- 使用opencv直接打开云钥GigE网络工业相机
使用opencv直接打开云钥GigE网络工业相机 一直以来,使用opencv打开网络工业相机获取图像是一个麻烦的事情,一般的做法是对接工业相机厂商提供的SDK库,使用其中API函数.但是SDK库中基本 ...
- C语言<文件的打开与关闭>
目录 一.为什么使用文件 二.什么是文件 1.程序文件 2.数据文件 3.文件名 三.文件的打开与关闭 1.文件指针 2.文件的打开与关闭 结语 一.为什么使用文件 我们前面学习结构体时,写了通讯录的 ...
- C++ 笔记(21)— 处理文件(文件打开、关闭、读取、写入)
C++ 提供了 std::fstream ,旨在以独立于平台的方式访问文件. std::fstream 从 std::ofstream 那里继承了写入文件的功能,并从 std::ifstream 那里 ...
- ubuntu 如何关闭离线模式_如何在macOS中打开或关闭Mac暗黑模式
苹果在macOS Mojave中为Mac引入了暗模式.暗模式是系统级别的设置,可与Mac随附的所有应用一起使用.第三方应用也可以选择使用暗黑模式.暗黑模式使您更轻松地专注于工作,并且对眼睛也很容易.装 ...
- Matlab学习笔记——文件的打开与关闭
写在这里的初衷,一是备忘,二是希望得到高人指点,三是希望能遇到志同道合的朋友. 目录 文件的打开与关闭 1.fopen函数 2.fclose函数 文件的打开与关闭 1.fopen函数 用于打开文件,其 ...
- 生活娱乐 达尔优的键盘鼠标如何打开和关闭呼吸灯
http://item.jd.com/1105057.html FN+Scrllock为开关按钮 FN+PuUp为调节灯光 http://item.jd.com/1154075.html 鼠标底面有开 ...
- Linux C编程--打开和关闭流
以下函数用于打开和关闭一个流. #include <stdio.h> FILE * fopen (const char *pathname, const char *opentype); ...
- android 弹出编辑框,Android编程实现的EditText弹出打开和关闭工具类
本文实例讲述了Android编程实现的EditText弹出打开和关闭工具类.分享给大家供大家参考,具体如下: 需求: 使用代码实现Android的输入框EditText对键盘的关闭弹出的实现. 代码: ...
- Ubuntu16.04打开和关闭桌面显示
阿里云Ubuntu16.04打开和关闭桌面显示 文章目录 一.打开桌面图像化显示 一.关闭桌面图像化显示 在进行阿里云远程连接桌面(浏览中显示的桌面)时,通过点击左上角的的alt+ctrl+f1,然后 ...
最新文章
- mfc倾斜文本输入_文本检测知识梳理(持续更新)
- linux虚拟网络设备之bridge(桥)(三)
- android ndk 界面开发教程,Android NDK开发之入门教程
- tomcat 7连接池配置与使用
- Vue.js-Day01-PM【事件绑定(事件传参、事件对象、传参+获取事件对象)、样式处理操作(模板、事件、属性绑定)、Tab切换(原生js实现、Vue.js实现)、js中的this详解关键字】
- Spring mvc 内置编码过滤器原理解析
- Django(part14)--模板的继承
- 【Todo】Java8新特性学习
- HDU 4651 数论 partition 求自然数的拆分数
- 小说有广告?我用50行Python爬虫做了一个无广在线小说阅读器
- 【洛谷试炼场】普及练习场——贪心
- 测试用例--测试大纲(提纲)法
- UMLChina公众号文章精选(20220227更新精选)
- docker 部分插件安装命令
- Monyer黑客小游戏 踩坑总结
- Develop -- Training(十五) -- 显示高效位图
- Jackson Json 快速入门
- html数据线如何使用,揭秘数据线DIY详细步骤
- NBS-Predict:基于脑网络的机器学习预测
- 【深度】被加班,狼性文化面纱下的奴性文化