c++ - 从当前捕获中获取设备 ID

标签 c++ opencv camera

我正在使用 OpenCV 获取一些视频帧。这是相机捕获的初始化方式:

VideoCapture capture;
capture.open(0);  //Read from camera #0

如果我想切换到不同的相机,我会这样做:

capture.release();  //Release the stream
capture.open(1);    //Open different stream

假设您有几个摄像头连接到您的计算机,并且您想要使用两个按钮上一个摄像头下一个摄像头 循环浏览它们。在不将当前摄像机 ID 保存到变量的情况下,我需要从 VideoCapture 对象中获取实际值。
那么有没有办法找出当前使用的设备的id呢?

伪代码:

int current = capture.deviceId;
capture.release();
capture.open(current++);

最佳答案

So is there a way how to find out the id of currently used device?

没有办法做到这一点,因为 VideoCapture 类不包含此类变量或方法。它实际上包含指向 CvCaptureprotected 指针(请查看 highgui.h),因此您可以尝试使用它但您没有有权访问该字段。

关于c++ - 从当前捕获中获取设备 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16639159/

相关文章:

c++ - 我应该在学习 C++ 之前学习 C 吗?

opencv - Fisherfaces.train() 方法中出现 OpenCV 错误 "Image step is wrong"

c - v4l2 中网络摄像头设备的读取函数因参数无效而失败

c++ - 基于模板参数类型的调用函数

c++ - 我应该制作所有不应该改变常量的东西吗?

c++ - 如何不删除基类对象的拷贝?

c# - 扫描射击目标纸以获得分数

python - OpenCV 错误 : Assertion failed: cant get video feed working

linux - 如何显示覆盖视频源的图像?

swift - SceneKit:在 Swift 4 中缩放相机