启动摄像头

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

我的OpenCV学习笔记(11):启动摄像头
分类:opencv2012-05-03 09:16 11086人阅读评论(12) 收藏举报数据结构语言stringc
在网上看了许多关于OpenCV启动摄像头的资料,但是,都是基于C语言的,代码又臭又长,(其实主要是因为我学的OpenCV就是用C++的,C语言的基本数据结构不太熟悉),所以一直想找一个用C++写的程序,最后让我在OpenCV自带的英文参考手册上找见了,整个代码30行都不到!nice啊!我对代码做了一点修改,发上来吧!
[cpp]view plaincopy
1.#include <opencv2/highgui/highgui.hpp>
2.#include <opencv2/imgproc/imgproc.hpp>
3.#include <opencv2/core/core.hpp>
4.
ing namespace cv;
6.
7.
8.int main()
9.{
10. VideoCapture cap(0);
11.if(!cap.isOpened())
12. {
13.return -1;
14. }
15. Mat frame;
16. Mat edges;
17.
18.bool stop = false;
19.while(!stop)
20. {
21. cap>>frame;
22. cvtColor(frame, edges, CV_BGR2GRAY);
23. GaussianBlur(edges, edges, Size(7,7), 1.5, 1.5);
24. Canny(edges, edges, 0, 30, 3);
25. imshow("当前视频",edges);
26.if(waitKey(30) >=0)
27. stop = true;
28. }
29.return 0;
30.}
对代码的几点说明:
1. VideoCapture类有两种用法,一种是VideoCapture(const string& filename)用来打开视频文件,一种是VideoCapture(int device)用来打开设备。

2. isOpened函数用来检测VideoCapture类是否打开成功。

3. C++版本的OpenCV有一个明显的好处,就是不需要释放操作(不论是视频还是图片),VideoCapture类的析构函数会自动帮你完成。

由于本人长相丑陋,所以对摄像头获取的彩色图像进行了一些简单的处理:转为灰度图像、高斯滤波,边沿检测。

这样大家就不会受惊了,哈哈!
随便截了一张图:。

相关文档
最新文档