OpenCV VideoCapture无法获取帧

thtygnil  于 2023-10-24  发布在  其他
关注(0)|答案(1)|浏览(125)

我想在Windows操作系统上使用C++环境实现从当前连接的摄像机获取实时摄像机馈送的要求。然而,经过多次尝试和调试,我发现我的计算机无法成功从摄像机中获取帧。所以,我写了一个简单的程序,旨在完成一个任务:在屏幕上显示来自ID为0的摄像头设备的视频源。然而,它未能按预期工作。我注意到VideoCapture video成功打开了ID为0的设备,但在执行video >> picture;后,图片对象仍然为空,这对我来说是很复杂的。下面是完整的代码。

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char** argv)
{
    try {
        VideoCapture video;   
        Mat picture;  
        video.open(0);  
        if (!video.isOpened())  
        {
            cout << "Failed to open camera" << endl;
            return -1;
        }
        while (1) 
        {
            video >> picture; 

            if (picture.empty()) {
                cout << "Empty frame" << endl;
                break;
            }
            imshow("input", picture); 
            if (waitKey(30) == 27) 
                break;
        }
    }
    catch (const cv::Exception& e) {
        cout << "OpenCV exception: " << e.what() << endl;
    }
    catch (const std::exception& e) {
        cout << "Exception: " << e.what() << endl;
    }
    catch (...) {
        cout << "Unknown exception occurred" << endl;
    }

    return 0;
}

下面是输出. enter image description here顺便说一下,我确定我试图打开的相机存在,因为我可以看到我的相机上的灯变成蓝色,当我运行该过程,这意味着相机是开着的。
我不知道如何修复它,似乎大多数人都可以很容易地实现目标时,运行这个过程,但我不是。我希望有人能帮助我。

olhwl3o2

olhwl3o21#

您是否检查过权限?您是否授予您的应用程序通过Windows访问相机的权限?以下是一个处理权限问题的相关问题,可能会有所帮助:opencv python camera permission issue on Windows 10

相关问题