关闭

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

标签: opencv摄像头视频
239人阅读 评论(0) 收藏 举报
分类:
最近为了学习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,使得程序从第二帧图像开始处理,这样就不会出现问题了。下面给出运行效果图。
这里写图片描述

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:4024次
    • 积分:98
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:2篇
    • 译文:0篇
    • 评论:23条
    最新评论