OpenCV - 网络摄像头 imshow 不显示实时提要,而是灰色屏幕

OpenCV - Webcam imshow not displaying live feed, gray screen instead

我在 Visual Studio 2015 年使用的是 OpenCV 3.2.0 版,并且一直能够访问我的网络摄像头,直到今天早上我正在处理它时突然之间。我不知道这个问题是从哪里来的。我现在得到:

它不会抛出任何错误,但也不会通过网络摄像头显示任何输入

#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <iostream>

using namespace std;
using namespace cv;    

int main(int argc, char** argv)
{
    VideoCapture cap;
    cap.open(0);
    if (!cap.isOpened())
    {
        printf("--(!)Error opening video capture\n");
        return -3;
    }


    Mat image;
    namedWindow("Image", CV_WINDOW_AUTOSIZE);
    while (1)
    {
        cap.read(image);

        imshow("Image", image);
        waitKey(30);
    }


    return 0;
}

有没有人遇到过这个错误?

编辑: 我看过的东西:

我的网络摄像头在 Google 环聊等方面工作,所以我认为这不是网络摄像头问题。

此外,我卸载了 Visual Studio 2015 并安装了 Visual Studio 2017 以查看重新安装是否有效并且仍然得到相同的结果。

编辑:

我在创建新的 VideoCapture 对象时遇到错误 <information not available, no symboles loaded for opencv_world320d.dll>。我很确定我已经正确包含了所有内容。

配置属性 -> C/C++ -> 其他包含目录: $(OPENCV_BUILD)\include

配置属性 -> 链接器 -> 常规: $(OPENCV_BUILD)\x64\vc14\lib

配置属性 -> 链接器 -> 输入: opencv_world320d.lib

我用CMake编译构建源码得到Opencv后遇到了同样的问题。然后,我删除了它们并从预构建的二进制文件中安装了 Opencv。我再次 运行 代码,没有问题。

正如 所建议的那样,这是我的防病毒软件阻止我的网络摄像头的问题。我不知道如何排除我的 Visual Studio 目录,所以我只是尝试卸载它并且它起作用了。拥有防病毒软件并使其正常工作会很好,所以我需要弄清楚这一点。但是对于临时工,这会起作用。