首页 > 解决方案 > 在 WinPE 下从网络摄像头捕获?

问题描述

我正在编写一套将在 Windows PE 环境中运行的硬件测试。我需要测试网络摄像头,但到目前为止我很难过。我使用 opencv 库编译了一个小型网络摄像头捕获程序,但无法检测到网络摄像头。我尝试加载其他驱动程序,但没有成功。不幸的是,我没有在网上找到任何帮助,因为显然没有其他人足够疯狂/愚蠢来尝试这个。这个想法在某种程度上是否存在根本缺陷,或者有没有办法做到这一点?任何帮助表示赞赏。

这是我正在使用的在我的 Windows 10 机器上编译和运行的代码:

#include "opencv2/opencv.hpp"
#include <cstdio>
using namespace cv;
int main(int argc, char** argv)
{
    VideoCapture cap;
    // open the default camera, use something different from 0 otherwise;
    // Check VideoCapture documentation.
    if(!cap.isOpened())  // check if we succeeded
    {
         printf("Unable to open webcam");
         return -1;
    }
    for(;;)
    {
          Mat frame;
          cap >> frame;
          if( frame.empty() ) break; // end of video stream
          imshow("this is you, smile! :)", frame);
          if( waitKey(10) == 27 ) break; // stop capturing by pressing ESC 
    }
    // the camera will be closed automatically upon exit
    // cap.close();
    return 0;
}

编辑:我意识到驱动程序在启动时没有加载,所以我使用 drvload.exe 手动加载它们。现在,当我执行 WQL 查询(ConfigManagerErrorCode = 0)时,网络摄像头显示为功能正常,但我的 opencv 程序仍然无法检测到它。

标签: c++opencvwinpe

解决方案


如果不向您的 PE 环境添加一些 DLL,您将无法让您的凸轮工作。

PE 是一个极简的 WIndows,由于最小化内存和磁盘空间消耗而错过了许多功能。它仅用于离线编辑 Windows 图像,不用于硬件测试。几个月前遇到了类似的问题。

我不确定这里是否允许链接到该项目,但他们肯定会为您提供有用的信息:TheOven


推荐阅读