OpenCV - 网络摄像头显示不显示实时反馈,而是显示灰色屏幕

时间:2017-05-01 21:29:55

标签: c++ opencv visual-studio-2015 computer-vision

我正在使用Visual Studio 2015中的OpenCV版本3.2.0,并且能够访问我的网络摄像头,直到我今天早上工作时突然。我无法弄清楚这个问题的来源。我现在得到:

enter image description here

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

#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;
}

之前有没有人遇到过此错误?

修改 我看过的事情:

我的网络摄像头,我在谷歌环聊等工作,所以我不认为这是一个网络摄像头问题。

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

修改:

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

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

配置属性 - &gt;链接器 - &gt;一般: $(OPENCV_BUILD)\x64\vc14\lib

配置属性 - &gt;链接器 - &gt;输入: opencv_world320d.lib

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

正如@michael scolfield所建议的那样,我的防病毒功能阻止了我的网络摄像头。我无法弄清楚如何排除我的Visual Studio目录,所以我只是尝试卸载它,它工作。拥有防病毒功能并使其正常工作会很好,所以我需要弄明白这一点。但对于临时工,这将有效。