OpenCV VideoCapture在Visual Studio 2017(Windows 10)中不起作用

时间:2019-04-04 19:47:04

标签: windows opencv video-capture

我有一个非常奇怪的问题。当我从Visual Studio运行C ++应用程序时,VideoCapture既不会打开,也不会打开网络摄像头或视频文件,如果是网络摄像头,则会出现以下错误:

  

WinRT源错误-0xC00D36B3:'提供的流编号无效。'

之后

  

Microsoft C ++异常:内存位置0x000000D9B66FCBB0出现_com_error。 Microsoft C ++异常:内存位置0x000000D9B66FCAA0中的_com_error。 Microsoft C ++异常:内存位置0x000000D9B66FEFD0处的cv :: Exception。 Microsoft C ++异常:内存位置0x000000D9B66FEFD0处的cv :: Exception。

但是当我从VS外部运行该应用程序时-一切正常。我使用的是OpenCV v4.0.0

1 个答案:

答案 0 :(得分:0)

要诊断您的问题,请先尝试以下操作并给我反馈。

#include <opencv2/opencv.hpp>

using namespace cv;

int main()
{
    VideoCapture cap(0); // open the default camera
    if (!cap.isOpened())  // check if we succeeded
        return -1;

    Mat edges;
    Mat frame;
    namedWindow("edges", WINDOW_NORMAL);

    while (true)
    {
        cap >> frame; // get a new frame from camera
        cvtColor(frame, edges, COLOR_RGB2GRAY);
        GaussianBlur(edges, edges, Size(7, 7), 1.5, 1.5);
        Canny(edges, edges, 0, 50, 3);
        imshow("edges", edges);
        if (waitKey(30) >= 0) break;
    }
    // the camera will be deinitialized automatically in VideoCapture destructor
}

所需的库:

opencv_core401.lib
opencv_imgproc401.lib
opencv_videoio401.lib
opencv_highgui401.lib