zoukankan      html  css  js  c++  java
  • OpenCV学习记录之摄像头调用

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

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

    [cpp] view plain copy
     
    1. #include<opencv2/opencv.hpp>   
    2. #include<cv.h>  
    3.    
    4. using namespace cv;   
    5. using namespace std;  
    6. //-----------------------------------【main()函数】--------------------------------------------  
    7. //                描述:控制台应用程序的入口函数,我们的程序从这里开始  
    8. //-------------------------------------------------------------------------------------------------  
    9. //stringname = "我的摄像头";  
    10. int main( )   
    11. {   
    12. //【1】从摄像头读入视频  
    13. VideoCapture capture(0);//若测试摄像头有没有打开,/*if(!capture.isOpened())                {cout<< "cannot open the camera.";cin.get();return -1;}*  
    14.    
    15. Mat edges; //定义一个Mat变量,用于存储每一帧的图像  
    16. //【2】循环显示每一帧  
    17. while(1)  
    18. {  
    19. Mat frame; //定义一个Mat变量,用于存储每一帧的图像  
    20. capture >> frame;  //读取当前帧                          
    21. if(frame.empty())  
    22. {  
    23. printf("--(!) No captured frame -- Break!");  
    24. //break;                  
    25. }  
    26. else  
    27. {  
    28. cvtColor(frame, edges, CV_BGR2GRAY);//彩色转换成灰度  
    29. blur(edges, edges, Size(7, 7));//模糊化  
    30. Canny(edges, edges, 0, 30, 3);//边缘化  
    31. imshow("读取被边缘后的视频", frame); //显示当前帧  
    32.    
    33. }  
    34.    
    35. waitKey(30); //延时30ms  
    36. }  
    37. return0;      
    38. }   
  • 相关阅读:
    C面试复习笔记
    Java面试复习笔记
    Jdk1.6 HTTPS访问问题解决办法
    百度地图轨迹回放,自定义路书,边走边画线
    简单的代码生成小工具(支持模板)
    card布局解决复杂操作的布局问题
    tabpanel如何隐藏页签表头以及基本用法总结
    ExtJS4.2下将表单元素放在菜单时不能进行拷贝的问题解决办法
    照片元数据信息以及在照片中写入gps信息
    带名称空间的xml数据查询
  • 原文地址:https://www.cnblogs.com/wanghuaijun/p/9062023.html
Copyright © 2011-2022 走看看