OpenCV -圆形切换相机与cvCaptureFromCam

OpenCV - Circular switch cameras with cvCaptureFromCam

本文关键字:相机 cvCaptureFromCam -圆 OpenCV      更新时间:2023-10-16

我的应用程序可以在连接0或100个摄像头的计算机上执行。我需要做代码切换相机,直到电脑没有更多的相机使用。在这种情况下,源应该再次为0。为了实现这一点,我使用了以下代码:

CvCapture * capture = cvCaptureFromCAM(_source);
// Try to open capture and if it fails go to first camera
if(!capture){
    _source = 0;
    capture = cvCaptureFromCAM(_source);
}

使用此代码,我想尝试使用一个源(例如3),如果计算机没有3个摄像机,请转到第一个摄像机(源0)。问题是,虽然源是5,cvCaptureFromCAM总是返回一个有效的捕获,使用最后一个摄像机的捕获,永远不要NULL切换到0并从摄像机0获取源。你知道如何实现这个"循环"开关吗?

一个选项是获得相机的计数,并在此范围内做模块操作,但据我所知,OpenCV没有一种方法来获得可用相机的计数。

"最后使用的相机"表明您实际上没有释放该相机。在切换到新相机之前,请尝试释放旧相机