我正在 Mac 上创建对象检测程序。我想在手动曝光模式下使用 iSight 来提高检测质量。
我尝试了 iGlasses 和 QTKit Capture 来做到这一点,它确实有效,但程序运行非常缓慢且不稳定。所以我想尝试其他解决方案。
在 PhotoBooth.app 中,iSight 似乎在固定曝光模式下运行,因此可能有办法做到这一点。我阅读了 QTKit Capture 文档和 OpenCV 文档,但找不到答案。
如果您有任何想法,请告诉我。谢谢你。
QTKit Capture 使用起来非常简单,但无法设置手动相机参数,如增益、亮度、焦点等。如果您使用的是 Firewire 相机,我建议您查看libdc1394库,它可以让您控制如果您使用的是 IIDC Firewire 相机(如旧的外部 iSight),则可以查看所有这些值以及更多值。我使用这个库从机器人平台上的 CCD 摄像机进行视频捕获和控制。
不过,我猜您对内置 iSight 摄像头(即 USB)感兴趣。Wil Shipley 在他的帖子“Frozen in Carbonite”中简要提到了对内部 USB iSight 参数的控制,但他列出的大部分 Carbon 代码控制 IIDC Firewire 相机中的这些值。
不幸的是,根据Brad Ford 在 QuickTime 邮件列表中的这条消息,听起来您无法通过公开的界面以编程方式控制内置 iSights 上的饱和度和锐度。他推测 iGlasses 正在软件中对图像进行后处理,这是您可以使用 Core Image 滤镜完成的事情。
我终于设法从我的 Cocoa 应用程序中锁定了 iSight 的自动曝光/自动白平衡。
查看 www.paranoid-media.de/blog 了解更多信息。
嗯,
这些天我尝试了很多,但我找不到一个好主意。我认为 OpenCV + cocoa + iGlasses 是最快的,但仍然不稳定。
如果你有好的想法,请回复。谢谢你。
phoboslab的 Mac OSX的UVC 摄像头控件使用基本的 USB 命令和记录的 USB 接口来访问网络摄像头控件。上面列出的 paranoid-media.de/blog 链接到 PhobosLab,并为 iSight 的该方法提供了一些额外的调整。(这些调整现在也可以在 phoboslab 的评论中找到。