Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何让用户使用OpenCV选择视频录制设备(网络摄像头)?_C++_C_Console_Opencv_Device - Fatal编程技术网

C++ 如何让用户使用OpenCV选择视频录制设备(网络摄像头)?

C++ 如何让用户使用OpenCV选择视频录制设备(网络摄像头)?,c++,c,console,opencv,device,C++,C,Console,Opencv,Device,所以我需要的是类似于捕获设备列表的东西 还有一些函数可以让用户知道他想在哪台设备上传输数据 如何在OpenC++中使用OpenCV进行这样的事情?< P>在OpenCV(AFAIK)中不直接支持,但是尝试< P>马丁说OpenCV不支持,但你可以使用一个小技巧。如果满足您的需要,您可以通过调用cvCreateCameraCapture()连续枚举摄影机,直到返回NULL,从而找出摄影机的数量 像这样的事情: CvCapture *cap; int n = 0; while(1) { cap

所以我需要的是类似于捕获设备列表的东西

还有一些函数可以让用户知道他想在哪台设备上传输数据


如何在OpenC++中使用OpenCV进行这样的事情?

< P>在OpenCV(AFAIK)中不直接支持,但是尝试

< P>马丁说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建议的库。

尝试使用一些操作系统函数枚举网络摄像头。这可能需要一些工作,但这种方法可以保证每次都能得到一个列表(不像OpenCV hack,因为某些原因,它有时不起作用)。

在我的计算机上,无论我放什么索引,它都会返回默认的摄像头,尽管我只连接了2个。