OpenCV学习记录之摄像头调用

来源:互联网 发布:前段优化 编辑:程序博客网 时间:2024/05/01 21:21

关于opencv调用摄像头的问题主要是因为摄像头的打开有延时。在显示图像前,要用if语句判断图像是否存在。(否则会报错)

具体的:教程里的源程序,将if条件句里,break去掉,并增加else语句。

 

#include<opencv2/opencv.hpp> #include<cv.h> using namespace cv; using namespace std;//-----------------------------------【main()函数】--------------------------------------------//                描述:控制台应用程序的入口函数,我们的程序从这里开始//-------------------------------------------------------------------------------------------------//stringname = "我的摄像头";int main( ) { //【1】从摄像头读入视频VideoCapture capture(0);//若测试摄像头有没有打开,/*if(!capture.isOpened())                {cout<< "cannot open the camera.";cin.get();return -1;}* Mat edges; //定义一个Mat变量,用于存储每一帧的图像//【2】循环显示每一帧while(1){Mat frame; //定义一个Mat变量,用于存储每一帧的图像capture >> frame;  //读取当前帧                        if(frame.empty()){printf("--(!) No captured frame -- Break!");//break;                }else{cvtColor(frame, edges, CV_BGR2GRAY);//彩色转换成灰度blur(edges, edges, Size(7, 7));//模糊化Canny(edges, edges, 0, 30, 3);//边缘化imshow("读取被边缘后的视频", frame); //显示当前帧 } waitKey(30); //延时30ms}return0;    } 


 

1 0
原创粉丝点击