我的OpenCV学习笔记(11):启动摄像头
来源:互联网 发布:json数组解析 编辑:程序博客网 时间:2024/04/29 01:09
在网上看了许多关于OpenCV启动摄像头的资料,但是,都是基于C语言的,代码又臭又长,(其实主要是因为我学的OpenCV就是用C++的,C语言的基本数据结构不太熟悉),所以一直想找一个用C++写的程序,最后让我在OpenCV自带的英文参考手册上找见了,整个代码30行都不到!nice啊!我对代码做了一点修改,发上来吧!
- #include <opencv2/highgui/highgui.hpp>
- #include <opencv2/imgproc/imgproc.hpp>
- #include <opencv2/core/core.hpp>
- using namespace cv;
- int main()
- {
- VideoCapture cap(0);
- if(!cap.isOpened())
- {
- return -1;
- }
- Mat frame;
- Mat edges;
- bool stop = false;
- while(!stop)
- {
- cap>>frame;
- cvtColor(frame, edges, CV_BGR2GRAY);
- GaussianBlur(edges, edges, Size(7,7), 1.5, 1.5);
- Canny(edges, edges, 0, 30, 3);
- imshow("当前视频",edges);
- if(waitKey(30) >=0)
- stop = true;
- }
- return 0;
- }
对代码的几点说明:
1. VideoCapture类有两种用法,一种是VideoCapture(const string& filename)用来打开视频文件,一种是VideoCapture(int device)用来打开设备。
2. isOpened函数用来检测VideoCapture类是否打开成功。
3. C++版本的OpenCV有一个明显的好处,就是不需要释放操作(不论是视频还是图片),VideoCapture类的析构函数会自动帮你完成。
由于本人长相丑陋,所以对摄像头获取的彩色图像进行了一些简单的处理:转为灰度图像、高斯滤波,边沿检测。这样大家就不会受惊了,哈哈!
随便截了一张图:
0 0
- 我的OpenCV学习笔记(11):启动摄像头
- 我的OpenCV学习笔记(11):启动摄像头
- 我的OpenCV学习笔记(11):启动摄像头
- 我的OpenCV学习笔记(11):启动摄像头
- OpenCV学习笔记启动摄像头
- opencv学习:启动摄像头
- OpenCV学习笔记(2)-----开启摄像头
- OpenCV学习笔记-读取摄像头
- OPENCV学习笔记--调用摄像头
- 我的opencv学习笔记
- OpenCV学习笔记(6)基于 VC+OpenCV+DirectShow 的多个摄像头同步工作
- OpenCV学习笔记(6)基于 VC+OpenCV+DirectShow 的多个摄像头同步工作
- OpenCV学习笔记(6)基于 VC+OpenCV+DirectShow 的多个摄像头同步工作
- 【OpenCV学习笔记】四、摄像头/视频的读取与写入
- opencv学习笔记(三)-读取视频与摄像头
- opencv学习笔记(七)从电脑摄像头读入数据
- opencv学习笔记(九)捕获摄像头的视频并保存成avi格式
- Opencv for Python 学习笔记 2.1 摄像头
- angularjs中取出服务器返回的header中的数据。
- 解决问题方式的转变2
- 安装pmd
- fork()与_syscall0(int,fork) 关系
- Android启动画面实现
- 我的OpenCV学习笔记(11):启动摄像头
- R语言学习笔记-数据操作
- Dundas推出AWS上的大数据可视化解决方案
- Cocos2d-X3.0 ----- 内存管理源码分析
- 回车换行的不同以及 转义字符和ASCII码值—(附ASCII码表)
- Android启动画面实现
- 线程的4中状态
- 【leetcode with java】32 Longest Valid Parentheses O(n)
- android:windowSoftInputMode 无效的原因