码迷,mamicode.com
首页 > 其他好文 > 详细

调试opencv调用摄像头程序时碰到的问题

时间:2015-03-12 11:09:51      阅读:276      评论:0      收藏:0      [点我收藏+]

标签:

昨天晚上想把opencv学习笔记整理一下,当跑opencv调用摄像头的程序的时候老是出现Assertion failed (size.width>0 && size.height>0) in cv::imshow,最后查阅资料知道了是因为调用imshow()函数的时候传入的Mat为空导致的,可能是刚开始的时候摄像头并没有初始化成功,就调用imshow()导致程序已启动就down掉了,只要在while循环中判断一下传入的Mat是否为空就解决了

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char* argv[])
{
    VideoCapture cap(0);
    //设置摄像头
    cap.set(CV_CAP_PROP_FRAME_WIDTH, 640);
    cap.set(CV_CAP_PROP_FRAME_HEIGHT, 480);
    //确认是否成功打开摄像头
    if (!cap.isOpened()){
        cout << "打开摄像头失败,退出";
        exit(-1);
    }
    namedWindow("Capture", CV_WINDOW_AUTOSIZE | CV_WINDOW_FREERATIO);
    while (1)
    {
        Mat frame;
        cap >> frame;
        if (!frame.empty())
        {
            imshow("Capture", frame);
 
        }

        
        if (waitKey(30) >= 0) break;
    
}
    return 0;
}

 

调试opencv调用摄像头程序时碰到的问题

标签:

原文地址:http://www.cnblogs.com/CoderTian/p/4331657.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!