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

原创 2016年06月01日 14:57:55
最近为了学习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,使得程序从第二帧图像开始处理,这样就不会出现问题了。下面给出运行效果图。
这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

usb摄像头拍照(javacv--2)

前言: 下载jacaCV-0.7-bin.zip和javacv-0.7cppjars.zip解压 导入jacaCV-0.7-bin.zip中的javacpp.jar,javacv.jar ...

javacv开发详解之1:调用本机摄像头视频(建议使用javaCV1.3版本)

javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-F...

javaCV 之目标跟踪

Opencv应用非常的广泛,最近一段时间在学习它。 基于WEB开发的大型程序,主流是使用Java进行开发,而java处理底层的东西时速度不理想,于是通过Java调用C开发的库文件变得很流行,JavaC...

Javacv调用摄像头采集图像

直接贴代码 import org.bytedeco.javacpp.opencv_core; import org.bytedeco.javacv.*; import org.bytedec...

javacv开发详解之1:调用本机摄像头视频(建议使用javaCV1.3版本)

javacv开发包是用于支持java多媒体开发的一套开发包,可以适用于本地多媒体(音视频)调用以及音视频,图片等文件后期操作(图片修改,音视频解码剪辑等等功能),这里我只使用最简单的本地摄像头调用来演...

JavaCV环境的搭配和测试

由于OpenCV更新到2.4.4版本,JavaCV把直接调用的*.dll文件放置到Jar包中,这样搭建JavaCV的环境就更容易了, 到 http://download.csdn.net/detai...

usb摄像头拍照(javacv--1)

下载jacaCV-0.7-bin.zip和javacv-0.7cppjars.zip解压 导入jacaCV-0.7-bin.zip中的javacpp.jar,javacv.jar      (如...

javacv使用笔记

javacv 使用笔记 一.前言 最近在做一个视频审核的功能,但是运营觉得每个视频都要看一篇太浪费时间了,于是提出了这样一个需求,给每个视频随机截取5张图片展示出来,根据这5张图片决定是否需要继续观看...

【opencv学习笔记】一. 网络摄像头视频储存

目标:将网络摄像头的视频流储存在电脑中 #include #include #include using namespace cv;using namespace std;int ...

OpenCV学习笔记 利用MFC的Picture控件显示图像+播放视频和捕获摄像头画面 .

原始版本下载页面(仅显示图像): http://download.csdn.net/source/1779188 P.S.:后面又添加了播放视频和捕获摄像头画面的功能,其中播放视频的功...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)