基于OpenCV打开摄像头的控制台程序
来源:互联网 发布:java class method 编辑:程序博客网 时间:2024/05/01 16:54
#include "stdio.h"#include "cv.h"#include "highgui.h"using namespace cv;/*IplImage类型*/void OpenCamera1(){/*读取摄像头 *cvCreateCameraCapture和cvCaptureFromCAM都有初始化从摄像头中获取视频的功能 *参数设置为0,打开电脑自带的摄像头;参数设置为1,打开外置的USB摄像头 */CvCapture* capture = NULL;//创建一个来自摄像头的capturecapture = cvCreateCameraCapture(0);//capture = cvCaptureFromCAM(0);IplImage* frame;cvNamedWindow("Show1");while(1){//从capture中读取下一帧画面,在while循环中不断调用这一句,就能不断得到新画面frame = cvQueryFrame(capture);if(!frame) break;cvShowImage("Show1",frame);/*cvWaitkey(int delay)函数 *当delay小于等于0的时候, *如果没有键盘触发,则一直等待,此时的返回值为-1,否则返回值为键盘按下的码字; *当delay大于0时, *如果没有键盘的的触发,则等待delay的时间,此时的返回值是-1,否则返回值为键盘按下的码字。 */char c = cvWaitKey(50);//等待用户按下Esc键50msif(c==27) break;//如果按下Esc键,退出循环}cvReleaseCapture(&capture);cvDestroyWindow("Show1");}/*Mat类型*/int OpenCamera2(){//VideoCapture类的构造函数VideoCapture capture(0);//参数为0,表示打开默认摄像头if(!capture.isOpened())//检测摄像头是否正常打开return -1;namedWindow("Show2");Mat frame;while(1){capture>>frame;//从摄像头获取当前一帧图像if(frame.empty()) break;imshow("Show2",frame);if(waitKey(50)>=0) break;}//摄像头会在VideoCapture的析构函数中释放return 0;}int main(){OpenCamera1();//OpenCamera2();return 0;}
由于课程设计需求,要打开电脑上的摄像头,对获取的图像进行处理。在网上找了很多打开摄像头的代码,方法很多,现总结两种方法。其实只是因为图片的格式有差别,导致方法上有些略微的差别。代码如上所示,注释比较齐全。
这里总结一些IplImage与Mat的知识。IplImage是表示一个图像的结构体,通过cvCreateImage创建内存图像数据,创建后复制像素到创建的内存,结束之后通过cvReleaseImage等函数释放掉内存。Mat类型可以通过构造函数Mat直接创建,比较方便。
参考博客:http://blog.csdn.net/chinabinlang/article/details/40982065
运行结果:
阅读全文
0 0
- 基于OpenCV打开摄像头的控制台程序
- 基于opencv的摄像头提取
- opencv实践程序3——打开摄像头视频及轮廓检测的简单程序
- 一个基于MFC多线程和Opencv库的打开两个摄像头实例
- openCV打开摄像头的两个方法
- opencv打开摄像头为空的解决方案
- Opencv--打开摄像头
- opencv打开摄像头
- opencv 打开摄像头
- OpenCV打开摄像头失败
- OpenCV打开摄像头(二)
- OpenCV打开摄像头问题
- 通过OpenCV打开摄像头
- opencv 打开网络摄像头
- MFC+OpenCV打开摄像头
- opencv 打开摄像头
- Opencv打开内置摄像头
- opencv 无法打开摄像头
- Maven+SpringBoot环境搭建
- 创建生成word文档时候,iis出现无权限的问题{000209FF-0000-0000-C000-000000000046}
- Trie树
- 基于FreeRTOS与MQTT的物联网技术应用系列——步进电机控制(六)基于CrossApp跨平台框架的MQTT客户端控制应用PC版
- ORA-28000: the account is locked-的解决办法 解锁 SQL> conn /as sysdba 已连接。 SQL> alter user jd account unloc
- 基于OpenCV打开摄像头的控制台程序
- Shell终端输出字符的颜色总结
- 树链剖分bzoj3626
- Linux中MAVEN环境配置
- 软件工程论文书写设计步骤及如何降低重复率
- 网站 502 解决方法
- ##好好好####知识图谱的应用#######
- Picasso使用Target无法回调的分析与解决
- 是否可能触发滥用#链接低质量站点规则