首页 > 解决方案 > OpenCV 在从网络摄像头捕获图像时遇到问题

问题描述

当我尝试使用 OpenCV 从我的网络摄像头捕获图片时,它会显示一些错误并返回一张黑色图片。

操作系统:Windows 10 Insider Preview 10.0.18970.1005

OpenCV 版本:4.1.1

主要代码:

#include<opencv2/opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main() {
    VideoCapture cam;
    while (!cam.open(0))cerr << "failed to open cam" << endl;
    namedWindow("test");
    while (1) {
        Mat img;
        cam >> img;
        imshow("test", img);
        if (waitKey() == 27)break;
    }
    destroyWindow("test");
}

输出,这是意外和不需要的。

[ INFO:0] global C:\build\master_winpack-build-win64-vc15\opencv\modules\videoio\src\videoio_registry.cpp (187) cv::`anonymous-namespace'::VideoBackendRegistry::VideoBackendRegistry VIDEOIO: Enabled backends(7, sorted by priority): FFMPEG(1000); GSTREAMER(990); INTEL_MFX(980); MSMF(970); DSHOW(960); CV_IMAGES(950); CV_MJPEG(940)
[ INFO:0] global C:\build\master_winpack-build-win64-vc15\opencv\modules\videoio\src\backend_plugin.cpp (340) cv::impl::getPluginCandidates Found 2 plugin(s) for GSTREAMER
[ INFO:0] global C:\build\master_winpack-build-win64-vc15\opencv\modules\videoio\src\backend_plugin.cpp (172) cv::impl::DynamicLib::libraryLoad load D:\OpenCV\build\x64\vc15\bin\opencv_videoio_gstreamer411_64.dll => FAILED
[ INFO:0] global C:\build\master_winpack-build-win64-vc15\opencv\modules\videoio\src\backend_plugin.cpp (172) cv::impl::DynamicLib::libraryLoad load opencv_videoio_gstreamer411_64.dll => FAILED
[ WARN:0] global C:\build\master_winpack-build-win64-vc15\opencv\modules\videoio\src\cap_msmf.cpp (674) SourceReaderCB::~SourceReaderCB terminating async callback

标签: c++opencv

解决方案


我也有这个问题。我用的是Windows 10系统,最后发现我禁止使用摄像头。请在隐私设置中检查相机的权限。


推荐阅读