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

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

  1. #include "stdafx.h"

  2. #include <cv.h>

  3. #include <cxcore.h>

  4. #include <highgui.h>

  5. int main( int argc, char** argv )

  6. {

  7. //声明IplImage指针

  8. IplImage* pFrame = NULL;

  9. //获取摄像头

  10. CvCapture* pCapture = cvCreateCameraCapture(-1);

  11. //创建窗口

  12. cvNamedWindow("video", 1);

  13. //显示视屏

  14. while(1)

  15. {

  16. pFrame=cvQueryFrame( pCapture );

  17. if(!pFrame)break;

  18. cvShowImage("video",pFrame);

  19. char c=cvWaitKey(33);

  20. if(c==27)break;

  21. }

  22. cvReleaseCapture(&pCapture);

  23. 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 没有公共接口,它只能被用来作为视频获取函数的一个参数。

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

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

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

  1. while(1)

  2. {

  3. pFrame=cvQueryFrame( pCapture );

  4. if(!pFrame)break;

  5. cvShowImage("video",pFrame);

  6. char c=cvWaitKey(33);

  7. if(c==27)break;

  8. }

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

进入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");

最后释放占用资源

显示运行结果

2020-10-22OpenCV 获取摄像头并显示摄像头视频相关推荐

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

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

  2. 【正点原子FPGA连载】第三十九章OV7725摄像头RGB-LCD显示实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1

    1)实验平台:正点原子新起点V2开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=609758951113 2)全套实验源码+手册+视频下载地址:ht ...

  3. 【正点原子FPGA连载】第四十四章MT9V034摄像头HDMI显示实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1

    1)实验平台:正点原子新起点V2开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=609758951113 2)全套实验源码+手册+视频下载地址:ht ...

  4. python_获取网络(大华)摄像头画面,并存储为图片和视频

    导入库 pip install opencv-python 代码 网络摄像头 ''' Opencv-python读取IP摄像头视频流 pip install opencv-python '''impo ...

  5. 【正点原子FPGA连载】第四十三章MT9V034摄像头RGB-LCD显示实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1

    1)实验平台:正点原子新起点V2开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=609758951113 2)全套实验源码+手册+视频下载地址:ht ...

  6. java 网络流量统计_【Java】人流量统计-动态版之摄像头识别显示

    [Java]人流量统计-动态版之视频转图识别请访问 http://ai.baidu.com/forum/topic/show/940413 本文是基于上一篇进行迭代的.本文主要是以摄像头画面进行人流量 ...

  7. 【正点原子FPGA连载】第四十一章OV5640摄像头RGB-LCD显示实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1

    1)实验平台:正点原子新起点V2开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=609758951113 2)全套实验源码+手册+视频下载地址:ht ...

  8. 【正点原子FPGA连载】 第三十章双目OV5640摄像头LCD显示实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

    1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692450874670 3)全套实验源码+手册+视频下载地址: h ...

  9. 利用Python在Jetson TX2上抓取和显示摄像头影像

    小编来自水下机器人社区193369905,里面小编给出了很多资料 在本贴中,小编"我"分享了如何使用python 代码(及 OpenCV)在Jetson TX2上抓取和显示摄像头影 ...

最新文章

  1. 005-OSI七层模型IP地址
  2. 为了提升在小数据集上的性能,有学者让神经网络像生物一样“进化”了|CVPR2021 Oral...
  3. hadoop job 未跑满资源_mapreduce任务占满整个集群资源
  4. 什么是编译器,什么是集成开发环境?一文讲明白
  5. 网易云深度学习第二课notebook1
  6. 固定时间减当前时间有没有超72小时_上海龙湖英迪格酒店正式部署畅捷固定资产管理系统...
  7. Ubuntu下自定义调整CPU工作频率(用于省电或提高性能都好用)
  8. 最大子序列的和算法分析一
  9. 从 global.console 看 Node.js 中的作用域
  10. java类 英文文献_java英文参考文献
  11. php中如何从键盘获取,在javascript中如何获取键盘的keyCode
  12. 单片机c语言 课后答案,十天学会单片机C语言_郭天祥---课后习题答案
  13. 【Java】从0开始个人网站建立(一)工程建立到登录与认证-Spring boot、Shiro、Mybatis-Plus、MySql
  14. IE浏览器假死解决办法
  15. JQuery属性选择器
  16. form-group 两种常用使用
  17. influxdb的percentile函数
  18. java 泛型中的上界(extend)和下界(super)
  19. 《数据结构教程(李春葆主编 第五版)》第七章源代码—树和二叉树
  20. 统一协同工作平台用户管理、单点登录以及任务集成接口说明

热门文章

  1. Kivy安装使用教程
  2. 中国城市基础设施建设大会开幕 聚焦智慧城市发展
  3. bzoj 1050: [HAOI2006]旅行comf(并查集)
  4. java 连续运算_java 另类方法实现计算机连续四则运算
  5. win10切换桌面_开始菜单终变身但仍不完美!用这些利器让Win10改头换面吧
  6. 有一种新年味叫「DOU 来云过年」
  7. TP5.1使用pgsql报错“没有匹配指定名称和参数类型的函数. 您也许需要增加明确的类型转换”的解决办法...
  8. 蓝书(算法竞赛进阶指南)刷题记录——CH#46A BZOJ3276 磁力块(bfs+分块)
  9. 论ACM与泡妞【转】
  10. 4.12.2nbsp;大卫bull;李嘉图