我有以下问题:在Mac OS X 10.5.8下的openCV程序中,当我尝试打开我的USB摄像头视频时,它总是打开iSight内置摄像头,虽然我明确地将摄像机编号设置为1(iSight应该是是0) . 此外,选择摄像机编号为2,3等也会打开iSight摄像头,尽管我只连接了2台摄像机 .
我尝试了以下内容
CvCapture * camera = cvCaptureFromCAM( 1 );
和
CvCapture * camera = cvCreateCameraCapture ( 1 );
他们都给出了相同的结果 . 有趣的是,当我从Skype或PhotoBooth从iSight摄像头打开视频捕获时,它占用了 Channels ,而openCV程序被迫打开网络摄像头 Channels ,没有任何问题 .
我的问题是,如何在我的openCV程序中明确选择网络摄像头,而不必先在另一个程序中占用iSight Channels ?
谢谢 .
附:该程序在Windows下工作 - 我只在带有1个摄像头(相同的网络摄像头)的机器上尝试过但是如果我指定了不同于0或CV_CAP_ANY的任何东西它会崩溃,所以我认为它正确搜索了摄像头 .
2 回答
看起来这个问题只是1.1中的一个错误,我假设你使用的版本是因为你在mac上并且私有框架是用该版本构建的 . 我通过拉下2.1源代码来修复这个问题,构建它,然后链接到那里的dylibs .
获取最新的OpenCV(此时版本为2.1)并尝试打开您的设备: