如何使用 OpenCV4 C++ 从 c920 相机获取帧

How to get frames from c920 camera using OpenCV4 C++

我正在尝试从 Logitec c920 相机获取帧 并展示给他们。 相机似乎在工作,但显示屏上没有显示任何内容 window。

我尝试配置所有相机设置,但没有。 我错过了什么???


    #include "pch.h"
    #include <iostream>
    #include "opencv2\imgcodecs.hpp"
    #include "opencv2\core.hpp"
    #include "opencv2\highgui.hpp"
    #include "opencv2\videoio.hpp"

    using namespace std;
    using namespace cv;

    int main()
    {

        VideoCapture camera(CAP_ANY);

        Mat frame;
        namedWindow("x", WINDOW_AUTOSIZE);

        camera.set(CAP_PROP_FOURCC, VideoWriter::fourcc('M', 'J', 'P', 'G'));
        camera.set(CAP_PROP_FRAME_WIDTH, 1920);
        camera.set(CAP_PROP_FRAME_HEIGHT, 1080);


        while (1)
        {

            camera.read(frame);
            imshow("x", frame);

        }

        waitKey(0);
        return 0;

    }

你必须在每一帧之后加上 waitKey(int delay)。您的 while 循环应如下所示:

while (1)
    {

        camera.read(frame);
        imshow("x", frame);
        waitKey(1);

    }