opencv判断摄像头是否断开

原创 2017年08月28日 16:11:25

使用opencv的cv::VideoCapture 类对象从摄像头处获取图像时,没法通过获取的图像判断摄像头是否有断开,即开始时成功获取到图像后,中间摄像头断开了,返回的图像数据还是正常的。


使用摄像头获取图像:

static cv::VideoCapture g_imgCapture;
g_imgCapture.open(0);

cv::Mat img, irImg;

g_imgCapture >> img;


正常情况下获取到的img是有数据的,摄像头断开时获取到的img也依然有数据。

判断摄像头是否断开方法:

通过获取摄像头图片的色调,如果摄像头连接正常,则返回来的色调是0,如果摄像头断开连接了,则色调返回来先是13,然后变成-1。因此直接判断返回值是不是0就可以知道摄像头是否断开:

double lightCapHue = g_imgCapture.get(CAP_PROP_HUE);

if(lightCapHue  != 0 )

{

//摄像头断开了

}


有一个使用需要注意的地方,不知是不是该函数需要经过比较耗时的运算,如果循环需要显示抓拍到的图片,并且如果每一帧都获取色调的话,会造成画面很卡。因此可以不用每一帧都判断摄像头是否断开,可以隔个好几秒再判断一次都可以。

关闭摄像头 结束线程

前面提到用线程打开了摄像头程序。现在我们该如何去关闭它。该程序是在线程内的一个死循环,如果循环过程中来监听某一变量的变化,做条件来结束循环。即该线程也结束。 bool CcamShowDlg::Cam...
  • pengjc2001
  • pengjc2001
  • 2015年08月17日 19:31
  • 594

OpenCV学习记录之摄像头调用

关于opencv调用摄像头的问题主要是因为摄像头的打开有延时。在显示图像前,要用if语句判断图像是否存在。(否则会报错) 具体的:教程里的源程序,将if条件句里,break去掉,并增加else语句。 ...
  • coldplayplay
  • coldplayplay
  • 2017年04月17日 15:27
  • 1978

opencv 摄像头和视频操作的两种方法

视频操作 #include #include #include #include #include #include #include #include #include #inc...
  • hgz_gs
  • hgz_gs
  • 2016年02月24日 19:58
  • 1525

我的OpenCV学习笔记(11):启动摄像头

在网上看了许多关于OpenCV启动摄像头的资料,但是,都是基于C语言的,代码又臭又长,(其实主要是因为我学的OpenCV就是用C++的,C语言的基本数据结构不太熟悉),所以一直想找一个用C++写的程序...
  • thefutureisour
  • thefutureisour
  • 2012年05月03日 09:16
  • 76929

QT +openCV 实现摄像头采集以及拍照功能

今天写的QT+openCV实现摄像头拍照功能。 在网上收罗了很多资料,QT没有专门操作摄像头的类,这个得自己写。网上也有很多关务openCV和V4l的一些介绍,由于我项目要在window下开...
  • llh318724
  • llh318724
  • 2011年11月24日 14:22
  • 35701

python opencv 使用摄像头捕获视频并显示

06-python opencv 使用摄像头捕获视频并显示06-python opencv 使用摄像头捕获视频并显示 概述 实现过程 引用 创建摄像头对象 逐帧显示实现视频播放 释放摄像头对象和窗口 ...
  • huanglu_thu13
  • huanglu_thu13
  • 2016年08月27日 21:00
  • 25271

[OpenCV] -- 简单摄像头操作

Email : hahayacoder@gmail.com 1 简单玩了下OpenCV中开启和关闭电脑摄像头,其实挺简单的,接下来在Qt中实现 2 打开Qt Creator,新建一个Qt Gui工程 ...
  • qiurisuixiang
  • qiurisuixiang
  • 2013年03月13日 22:35
  • 10917

Opencv调取摄像头失败的处理方法

最近想学习一下opencv,就弄了一本《学习opencv》的书看,书中的例子也随便敲一敲。可是,在调去摄像头时出现了如下问题。具体代码如下: #include "stdafx.h" #inclu...
  • IDMer
  • IDMer
  • 2015年08月03日 09:22
  • 6459

OpenCV入门五:OpenCV打开摄像头并用窗口显示摄像头的内容

OpenCV打开摄像头并用窗口显示摄像头的内容 #include #include #include #include using namespace cv; using namesp...
  • HW140701
  • HW140701
  • 2016年12月21日 10:53
  • 645

Opencv打开内置摄像头

Opencv中VideoCapture是专门用来处理视频文件或者摄像头视频流的类,详细的说明和用法可以参考Opencv2.4.13的说明文档:点击打开链接 使用VideoCapture打开内置摄...
  • dcrmg
  • dcrmg
  • 2016年08月13日 20:31
  • 6481
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:opencv判断摄像头是否断开
举报原因:
原因补充:

(最多只允许输入30个字)