opencv - 无法使用 OpenCV 从 FireWire cam 捕获图像

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

请帮我。

最佳答案

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

您的选择是使用 CMU1394驱动程序(假设您上面提到的相机与它兼容),或者供应商的相机驱动程序来捕获帧并将这些数据缓冲区放在 cv::Mat .如果您需要对相机参数进行特定控制,最好的办法是使用供应商的驱动程序。这将为您提供最大的控制权,但将您与他们的相机紧密结合。你可以子类VideoCapture ,并在同一接口(interface)下实现供应商的驱动程序以在一定程度上减轻这种耦合。

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

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

https://stackoverflow.com/questions/7822032/

相关文章:

android - 使用opencv在android中抓取连续帧

python - SimpleCV NameError:名称 'images'未定义

c# - 如何申请cvsobel + emgucv

c# - Windows 7 x32下C#中dllimport的问题

opencv - Linux上的OpenCV编译:如何向其提供特定的zlib lib?

opencv - 使用openCV GMM类进行对象建模

visual-c++ - OpenCV Connected Component标签颜色?

opencv - GLSL和OpenCV

ubuntu - 在 Ubuntu 中编译基于 OpenCV 和 ROS 的项目

opencv - OpenCV中matchTemplate函数出现错误