正如马丁所说,OpenCV不支持它,但你可以使用一个小技巧.如果满足您的需求,您可以通过调用连续枚举摄像机cvCreateCameraCapture()直到它返回NULL 来找出摄像机的数量.
是这样的:
CvCapture *cap;
int n = 0;
while(1)
{
cap = cvCreateCameraCapture(n++);
if (cap == NULL) break;
cvReleaseCapture(&cap);
}
cvReleaseCapture(&cap);
return n-1;
Run Code Online (Sandbox Code Playgroud)
现在你有了许多相机设备,所以你可以让你的用户从列表框的索引中选择一个.
缺点是OpenCV不会向您提供有关设备名称的任何信息,因此如果您想要实现这一点,您应该查看Microsoft DirectShow或Martin提议的库.
尝试使用一些操作系统函数来枚举网络摄像头。这可能需要一些工作,但这种方法将保证您每次都能获得一个列表(与 OpenCV hack 不同,OpenCV hack 有时由于某种原因不起作用)。
| 归档时间: |
|
| 查看次数: |
8644 次 |
| 最近记录: |