xujx09的博客

提供计算机视觉解决方案

OpenCV学习笔记(1):获取摄像头并显示摄像头视频

最近为了学习OpenCV,找了《OpenCV入门教程》(PDF版)当做入门教材,后面将开始学习《学习OpenCV》
这本书。
对《OpenCV入门教程》里面的所有例子进行了实践,发现文章最后关于“获取摄像头并显示摄像头视频”
这一部分给出的代码运行不出来,博主搜集了一些资料,找出问题根源,现给出修改后的代码:
//代码的含义主要是通过电脑摄像头获取视屏,并对每一帧图像进行Canny边缘检测,最后显示出来。
#include<stdio.h>
#include<iostream>
#include "opencv2/opencv.hpp" 
#include"highgui.h"
using namespace cv;
using namespace std; 

int main(int argc, char** argv[])  
{  
    VideoCapture cap(0);  
    if(!cap.isOpened())
    {  
        cerr<<"Open camera/video failed.\n"<<endl;  
        return -1;  
    } 
    int i=0;
    Mat edges; 
    Mat frame;
    namedWindow("edges", 1);  
    for(;;)
    {
        cap>>frame;
        if(frame.empty()&(i>0))
               break;
        if(i>0){
            cvtColor(frame,edges,CV_BGR2GRAY);
            Canny(edges,edges,0,90,3);
            imshow("edges",edges);
        }
        i++;
        if(waitKey(30)>=0)
            break;
    }
    return 0;  
}  

问题分析:《OpenCV入门教程》中的源代码在运行时可能获取不到第一帧图像,从而导致闪退。博主新定义了变量i,使得程序从第二帧图像开始处理,这样就不会出现问题了。下面给出运行效果图。
这里写图片描述

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xujx09/article/details/51556011
文章标签: opencv 摄像头 视频
个人分类: opencv学习笔记
上一篇转载:我的读博经历回顾与经验分享
下一篇图像处理方向就业前景
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭