在网上看了许多关于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类的析构函数会自动帮你完成。
由于本人长相丑陋,所以对摄像头获取的彩色图像进行了一些简单的处理:转为灰度图像、高斯滤波,边沿检测。这样大家就不会受惊了,哈哈!
随便截了一张图:
分享到:
相关推荐
OpenCV 3计算机视觉:Python语言实现,代码+pdf文档,适合于计算机视觉研究者
利用opencv编的一个小程序:启动摄像头并把读取的数据保存为avi格式的视频
Qt+opencv实现打开图片、打开摄像头、关闭摄像头
OpenCV 3计算机视觉:Python语言实现 (Joe Minichino)
爱分享、爱极客的编程怪兽--DaveBobo 博文 《【OpenCV学习笔记 005】 操作像素》 博文链接: http://blog.csdn.net/davebobo/article/details/52541612 OpenCV版本:2.4.9
Opencv学习笔记 辛苦收集希望和大家交流
opencv的学习资料:OpenCV2.1.pdf OpenCV中文手册 learning opencv电子版
OpenCV学习笔记入门版,真正的入门级别,自己写的
JAVA OpenCv 同时打开多个USB摄像头 拍照
opencv + Qt: 打开摄像头,绘制到QLabel中
这个一个很基础的opencv学习笔记,一些常会遇到的问题,在这里做了肤浅的介绍,还有很多问题没有提及,以后会陆续整理,并上传
opencv:python启动摄像头实现多种边缘检测,可以在filters.py文件中选择不同的滤波函数。
利用开放的源代码库,编写以VC实现的摄像头标定程序,能够精确实现内参与外参的标定。
标题学习opencv第一天: 一、图像基本操作: 1.图像读取:cv.imread(“文件位置:D:/python/picture.png” ) 函数功能:从文件路径中读取图片文件并显示出来,可读取的文件类型有JPG、JPEG、PNG、Webp等 函数原型:...
本例子很简单,总共就几行代码。...//开启摄像头 Cv2.WaitKey(100); //等待100ms相当于延时 myCamer.Read(frame); //将摄像头数据 读如frame中 //调用Cv2.ImShow(“窗口名字”,一个Mat类型的图像)
摄像头标定opencv源码摄像头标定opencv源码摄像头标定opencv源码
OpenCV学习笔记(C++版OpenCV学习笔记,主要包括基础模块和DNN模块)带详细注释源码!!!
利用Opencv和DirectShow打开多USB摄像头,可设置分辨率及帧率。工程已搭好所有的环境,不需再配置Opencv和DirectShow。下载可直接使用。平台为VS2013.
OpenCV学习笔记,(基础概念,归纳总结),相信你所选择的。
利用OpenCV和VS2013实现摄像头的调用