OpenCv - cv ::内存位置C ++的异常

时间:2014-04-13 03:04:44

标签: c++ opencv

我正在尝试对openCV程序进行编码,该程序会打开一个新的窗口,显示来自网络摄像头(笔记本电脑)的视频,并收到错误Unhandled exception at 0x7530C41F in cv.exe: Microsoft C++ exception: cv::Exception at memory location 0x001FF5D0.

我已经仔细检查了所有包含的dll以及系统路径,没有任何正面结果。

这是我的代码:

#include <opencv\cv.h>
#include <opencv\highgui.h>
using namespace cv;
int main()
{

    Mat image;

    VideoCapture cap;
    cap.open(0);

    namedWindow("window", CV_WINDOW_AUTOSIZE);

    while (1)
    {
        cap >> image;
        imshow("window", image);
        waitKey(33);
    }
    return 0;
}

2 个答案:

答案 0 :(得分:2)

我发现我的代码存在问题,我不得不使用waitKey(1000)暂停执行程序,否则程序会导致内存泄漏。必须这样做,因为在执行代码之前,我的笔记本电脑上的网络摄像头连接尚未完全建立。等待代码执行可以防止崩溃,现在一切都正常运行。

  #include <opencv\cv.h>
    #include <opencv\highgui.h>
    using namespace cv;
    int main()
    {

        Mat image;

        VideoCapture cap;
        cap.open(0);

        namedWindow("window", CV_WINDOW_AUTOSIZE);
            waitKey(1000);

        while (1)
        {
            cap >> image;
            imshow("window", image);
            waitKey(33);
        }
        return 0;
    }

答案 1 :(得分:0)

也许使用VideoCapture::isOpened()会告诉您使用VideoCapture实例是否安全?

相关问题