无法使用OpenCV从FireWire相机捕获图像

时间:2011-10-19 13:27:53

标签: opencv windows-xp firewire

我正在尝试使用Windows XP上的OpenCV 2.3.1从Claron MicronTracker cam(FireWire)捕获图像。函数cvCaptureFromCAM不起作用。我读到OpenCV无法在Windows平台下从USB以外的数码相机获取数据 - 这是真的吗?在Windows上使用OpenCV从FireWire cam获取数据没有解决方案吗?

请帮帮我。

1 个答案:

答案 0 :(得分:2)

您当然可以在Windows上使用OpenCV和Firewire相机。我已经与几个不同的Firewire相机供应商(Point Grey,Imaging Source等)完成了这项工作。不幸的是,您将无法使用OpenCV VideoCapture类来执行此操作。

您的选择是使用CMU1394驱动程序(假设您的上述摄像头与之兼容)或供应商的摄像头驱动程序来捕获帧以及这些数据缓冲在cv::Mat中的位置。如果您需要对相机参数进行特定控制,最好的办法是使用供应商的驱动程序。这将为您提供最大程度的控制,但会将您与相机紧密联系在一起。你可以子类VideoCapture,并在同一个接口下实现供应商的驱动程序,以减轻这种耦合。

Here是使用CMU驱动程序执行此操作的简短示例。

编辑:我发现,自2010年5月以来,OpenCV已经内置了对CMU兼容相机的支持。实现此功能的类是here。我不相信这是默认编译到库中的。因此,您将不得不自己从源代码构建OpenCV。您需要取消注释行//#define HAVE_CMU1394 1才能使其生效。希望有帮助!