基于OpenCV打开摄像头的控制台程序
2017-09-29 13:15
281 查看
#include "stdio.h" #include "cv.h" #include "highgui.h" using namespace cv; /*IplImage类型*/ void OpenCamera1(){ /*读取摄像头 *cvCreateCameraCapture和cvCaptureFromCAM都有初始化从摄像头中获取视频的功能 *参数设置为0,打开电脑自带的摄像头;参数设置为1,打开外置的USB摄像头 */ CvCapture* capture = NULL; //创建一个来自摄像头的capture capture = 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键50ms if(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
运行结果:
相关文章推荐
- 基于OpenCV的读取摄像头实现单个人脸验证MFC程序
- opencv3.1.0基于MFC打开摄像头
- opencv打开摄像头获取视频程序
- 基于OpenCV的读取摄像头实现单个人脸验证MFC程序
- opencv实践程序3——打开摄像头视频及轮廓检测的简单程序
- 基于QT和opencv的摄像头(本地图片)读取并输出程序
- 一个基于MFC多线程和Opencv库的打开两个摄像头实例
- 基于OpenCV的小程序:从摄像头录制视频并保存
- 在mfc程序中,打开控制台窗口的方法
- 图像拼接(三):OpenCV同时打开两个摄像头捕获视频
- 关于tiny4412自写qt4程序打开摄像头的实践手记
- OPencv2 无法打开摄像,摄像头灰
- 基于opencv的摄像头脸部识别抓取及格式储存(python)
- OpenCV学习笔记(25)基于MFC和OpenCV的摄像机定标与立体匹配测试程序(20140505更新)
- 用 OpenCV 编写一个简单的摄像头视频监控程序
- 基于MFC的OPENCV程序的静态编译
- 【Unity中基于RPC机制实现摄像头视频传输 unity打开摄像头 unity外接摄像头】
- 个人作业1——四则运算题目生成程序(基于控制台)
- 基于opencv的gpu与cpu对比程序,代码来自opencv的文档中
- 虚拟机下打开摄像头(Linux ubuntu 2.6.32-122-rtai+QT+opencv)