OpenCV 获取摄像头并显示摄像头视频

OpenCV 获取摄像头,新建窗口显示摄像头视频

结合Leaning OpenCV 第二个例子 显示一个视屏文件  写了一下 获取摄像头的代码为并且创建窗口显示的代码为:

#include "stdafx.h"#include <cv.h>#include <cxcore.h>#include <highgui.h> int main( int argc, char** argv )//声明IplImage指针  IplImage* pFrame = NULL//获取摄像头  CvCapture* pCapture = cvCreateCameraCapture(-1);   //创建窗口  cvNamedWindow("video", 1);   //显示视屏  while(1)  {      pFrame=cvQueryFrame( pCapture );      if(!pFrame)break;      cvShowImage("video",pFrame);      char c=cvWaitKey(33);      if(c==27)break;  }  cvReleaseCapture(&pCapture);  cvDestroyWindow("video");} 

其中必须说一下几个函数用分割线框起来了

具体是这样的:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

cvCreateCameraCapture

初始化从摄像头中获取视频

CvCapture* cvCreateCameraCapture( int index );
index 要使用的摄像头索引。如果只有一个摄像头或者用哪个摄像头也无所谓,那使用参数-1应该便可以。

函数cvCreateCameraCapture给从摄像头的视频流分配和初始化CvCapture结构。目前在Windows下可使用两种接口:Video for Windows(VFW)和Matrox Imaging Library(MIL); Linux下也有两种接口:V4L和FireWire(IEEE1394)。

释放这个结构,使用函数cvReleaseCapture。

返回值为一个

CvCapture++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

CvCapture

视频获取结构

typedef struct CvCapture CvCapture;

结构CvCapture 没有公共接口,它只能被用来作为视频获取函数的一个参数。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

这个是一个很重要的结构   以后无论是读取已有视频还是从摄像头获取都必须用到它

然后的工作就是把视屏显示出来

while(1){     pFrame=cvQueryFrame( pCapture );     if(!pFrame)break;     cvShowImage("video",pFrame);     char c=cvWaitKey(33);     if(c==27)break;}

在这里解释一下为什么显示视屏的时候要循环

进入While循环之后 开始读入视屏文件

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

cvQueryFrame函数

从摄像头或者文件中抓取并返回一帧

IplImage* cvQueryFrame( CvCapture* capture );
capture 视频获取结构。

函数cvQueryFrame从摄像头或者文件中抓取一帧,然后解压并返回这一帧。这个函数仅仅是函数cvGrabFrame和函数cvRetrieveFrame在一起调用的组合。返回的图像不可以被用户释放或者修改。抓取后,capture被指向下一帧,可用cvSetCaptureProperty调整capture到合适的帧。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

如果抓取帧为空   break 打破循环

否则将抓取的那一帧显示在创建的窗口上

cvShowImage("video",pFrame);

当前帧显示后

char c=cvWaitKey(33);
if(c==27)break;

我们等待33ms

如果用户触发了按键,将按键的ASCII值给C

如果C为ESC(ASCII 为27)循环退出

最后释放capture 和window

  cvReleaseCapture(&pCapture);
  cvDestroyWindow("video");

最后释放占用资源

显示运行结果

           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/427567.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu安装提醒写入失败 没有启动项_手把手教你如何安装windo10+Ubuntu18.10双系统...

踩坑经历以前一直都是用win10系统在自己的电脑上开发&#xff0c;在公司也都是用Ubuntu系统&#xff0c;现在想在自己的笔记本上安装一个Ubuntu系统&#xff0c;所以就想着在不用重装系统的情况下&#xff0c;装一个Ubuntu系统&#xff0c;所以就准备装一个双系统&#xff0c;安…

图像处理常用边缘检测算子总结

不同图像灰度不同&#xff0c;边界处一般会有明显的边缘&#xff0c;利用此特征可以分割图像。需要说明的是&#xff1a;边缘和物体间的边界并不等同&#xff0c;边缘指的是图像中像素的值有突变的地方&#xff0c;而物体间的边界指的是现实场景中的存在于物体之间的边界。有可…

但行好事,莫问前程!

一次看超级演说家的时候听乐嘉说过这么一句话&#xff1a;“你在讲你爹&#xff0c;我在想我爹&#xff0c;这是演讲的最高境界”&#xff0c;我觉得不仅演讲&#xff0c;共鸣应该是无处不在&#xff0c;我们往往可能因为别人的一句话就幡然醒悟&#xff0c;茅塞顿开&#xff0…

用SQL语句向表格中插入数据

向表格中插入数据SQL语言使用insert语句向数据库表格中插入或添加新的数据行。Insert语句的使用格式如下&#xff1a; insert into tablename (first_column,...last_column) values (first_value,...last_value); 例如&#xff1a; insert into employee (firstname, lastnam…

微信开发者工具 wxmi修改模版颜色_网站建设公司讲解:微信小程序的开发者工具界面...

网站建设公司深圳市博纳网络信息技术有限公司()讲解&#xff1a;微信小程序的开发者工具界面创建项目后&#xff0c;进入到微信开发者工具界面&#xff0c;界面大致可以分为6个区域&#xff1a;①菜单栏区域&#xff0c;②模拟器、编辑器、调试器显示与隐藏区域&#xff0c;③模…

面向接口编程详解

博文地址&#xff1a; 思想基础 http://www.cnblogs.com/leoo2sk/archive/2008/04/10/1146447.html 编程实例 http://www.cnblogs.com/leoo2sk/archive/2008/04/11/1148236.html 模式研究 http://www.cnblogs.com/leoo2sk/archive/2008/04/14/1151569.html转载于:https://www.…

【微信小程序】数组操作

Page({data: {list:[{id:1,name:应季鲜果,count:1},{id:2,name:精致糕点,count:6},{id:3,name:全球美食烘培原料,count:12},{id:4,name:无辣不欢生猛海鲜,count:5}]} }) 一、向前向后新增数组 //假设这一段是我们要新增的数组 var newarray [{id:5,name:向后增加数据--new Dat…

cocos 禁掉快速点击_win10系统快速运行debug程序的技巧

win10系统快速运行debug程序的技巧dosBox和程序对很多用户来说都是非常陌生的&#xff0c;其中debug对用户来说亦是如此&#xff0c;其实debug程序是开发工具中的一种&#xff0c;作为系统中预装的开发工具在系统中存在自然会有它的用处。但是在平时需要使用的时候并没有快速能…

shell 文件内容替换 sed用法

调用sed命令有两种形式&#xff1a;sed [options] command file(s)sed [options] -f scriptfile file(s)删除&#xff1a;d命令 $ sed 2d example-----删除example文件的第二行。$ sed 2,$d example-----删除example文件的第二行到末尾所有行。$ sed $d example-----删除exam…

js 利用事件委托解决mousedown中的click

有一个需求是这样的&#xff1a; 父元素div绑定一个mousedown事件&#xff0c;子元素a绑定一个click事件。 看解构&#xff1a; <div id"nav"><a href"javascript:void(0);">点我</a></div>搜了很多相关的都没有解决办法&#xff…

带孩子们做环球旅行的读后感_父母带孩子做心理咨询,需要注意哪些事项?

最近&#xff0c;带孩子来做心理咨询的父母接踵而至&#xff0c;但是很多时候&#xff0c;父母可能无意识会有一些影响心理咨询与治疗的效果的行为&#xff0c;对于他们来说&#xff0c;可能需要注意这几点&#xff1a;1、守时心理咨询需要精力与时间&#xff0c;一般咨询师为了…

OpenCV函数cvFindContours

提取轮廓在OpenCV里有一个函数 cvFindContours&#xff1a;int cvFindContours( CvArr* image, CvMemStorage* storage, CvSeq** first_contour,int header_sizesizeof(CvContour),int modeCV_RETR_LIST,int methodCV_CHAIN_APPROX_SIMPLE, CvPoint offsetcvPoint(0,0) );这个函…

table tr th td

控制th 宽度相同&#xff1a; table{display: -webkit-box;table-layout:fixed; border: none;max-width:120%;min-width:100%;} table tbody tr th{ width:200px !important; border:1px solid #333;} td{border:1px solid #333;}控制 俩行变为一行 &#xff1a; colspan"…

消息队列控制灯代码_代码实现RabbitMQ死信队列的创建

‍‍前言&#xff1a;‍‍之前有写过死信队列的使用场景以及通过管控台创建死信。这次就通过代码实现死信队列的创建&#xff0c;同时也分享一下RabbitMQ封装的类。准备&#xff1a;1. 先准备一个死信队列(最后用来消费)的参数配置&#xff0c;包括虚拟机&#xff0c;交换机&am…

Deep Learning(深度学习)

Deep Learning&#xff08;深度学习&#xff09;ufldl的2个教程(这个没得说&#xff0c;入门绝对的好教程&#xff0c;Ng的&#xff0c;逻辑清晰有练习)&#xff1a;一ufldl的2个教程(这个没得说&#xff0c;入门绝对的好教程&#xff0c;Ng的&#xff0c;逻辑清晰有练习)&…

0.Boot Loader的概念和功能

转载&#xff1a;http://blog.chinaunix.net/uid-20543672-id-94371.html 1、嵌入式Linux软件结构与分布 在一般情况下嵌入式Linux系统中的软件主要分为以下及部分&#xff1a; &#xff08;1&#xff09;引导加载程序&#xff1a;其中包括内部ROM中的固化启动代码和Boot Loade…

平板电脑可以插u盘吗_电视TV盒子安装app的六个方法,u盘/电脑/手机都可以安装...

点击上方蓝字 关注我们首先&#xff0c;要看盒子是否支持安装第三方app&#xff0c;这期只讲支持第三方app安装的安卓系统盒子&#xff0c;iOS盒子不讲。怎么看电视盒子能不能安装第三方&#xff1f;很简单&#xff0c;方法很多&#xff0c;最常见就是用装有apk文件的u盘连接盒…

IT人士必去的10个网站

1、Chinaunix 网址&#xff1a;http://www.chinaunix.net/ 简介&#xff1a;中国最大的linux/unix技术社区。 2、ITPub 网址&#xff1a;http://www.itpub.net/ 简介&#xff1a;有名气的IT技术论坛&#xff0c;看看它的alexa排名就知道有多火了&#xff0c;尤其以数据库技术讨…

drive es 软件兼容_某知名软件被完美修改!对不住了!

⭐星标Or 置顶⭐右上角三点-设为星标(置顶)今天给大家介绍两款超好用的免费神器&#xff01;支持&#xff0c;请点亮文章底部“在看” ?搜图神器绿化版安卓 / 9M这是一款装机必备的搜图应用&#xff0c;支持图片搜索&#xff0c;百度识图&#xff0c;谷歌识图&#xff0c;拍照…

OpenCv学习笔记(二)—cv Mat学习

由于在写上一篇图像的数据结构时&#xff0c;发现自己只知道CvMat,竟然还有Mat数据结构&#xff0c;真是无知了&#xff0c;看了这么多程序&#xff0c;貌似没有看到这个结构。有可能那些程序都是些老版本的例子&#xff0c;这是在2.0以后加上的&#xff0c;所以我也得紧跟呀&a…