我需要的是类似于“捕获设备列表”的东西,还需要一些函数来获取用户想要流式传输的设备。在win32 C++控制台应用程序中,如何使用openCV实现这样的功能?
cvCreateCameraCapture()
来枚举相机并找出相机数量,直到它返回NULL。CvCapture *cap;
int n = 0;
while(1)
{
cap = cvCreateCameraCapture(n++);
if (cap == NULL) break;
cvReleaseCapture(&cap);
}
cvReleaseCapture(&cap);
return n-1;
现在,您有许多相机设备,因此您可以让用户通过索引从列表框中选择其中一个。
缺点是OpenCV不会提供有关设备名称的任何信息,因此如果您也想实现这一点,您应该查看Microsoft DirectShow或Martin提出的库。