【发布时间】:2009-07-19 20:46:27
【问题描述】:
我正在使用 Directshow 在 winmo 设备上捕获图像。我的本机代码基于 Windows Mobile 6 sdk 中的“CameraCapture”示例,并进行了一些小的调整(简化了图表、添加了实时预览窗口、提高了照片分辨率等......)。
我的问题是调用 IAMVideoControl::SetMode() 来实际“拍摄”照片需要很长时间才能完成。当我调用它时,它会异步运行,需要几个秒,然后在创建照片文件时播放相机快门声音。在未修改的 CameraCapture 示例中,它与在我自己的代码中一样慢,所以我添加的任何内容似乎都不会导致这个问题。
我已经通过监听 dshow 事件来解决异步部分,但我无法找到更快的拍照方式。令人讨厌的是,我还没有找到任何方法来使快门声音静音(?)。这一切都非常令人失望,因为 Microsoft“CameraCaptureDialog”会立即以相同(和更高)的分辨率拍摄照片。
[编辑]:速度评论是基于我记得它的运行方式和最近用另一台设备进行的测试,但在看到下面的 cmets 后,我用标准 CCD 重新测试 - 它同样慢。除非有人有任何技巧可以加快速度(或消除快门噪音),否则我会说我将不得不忍受我所拥有的。再次感谢!
有什么建议可以让我加快这个过程吗?有没有更快的方法通过 Directshow 拍照?
再次感谢!
【问题讨论】:
-
您使用什么设备可以立即拍摄数码照片,尤其是实时预览窗口?我之前使用过 CameraCapture 示例,如果我没记错的话,将滤镜从用于实时预览的低分辨率切换到用于拍摄静止图像的高分辨率需要几秒钟,这似乎是一个根本问题。我用过的每台 WM 设备都遭受过长时间的延迟(我用过的每台数码相机也是如此)。
-
同意,我使用的每台设备从请求捕获到实际捕获都需要很长时间,即使是内置应用程序也是如此。
-
糟糕!我从(显然是失败的)内存中做出了“即时”速度评论,而最近与不同设备(运行 winmo 6.1 的智能手机)并排完成的事件进一步加剧了这种担忧。我完全错了:在相同的设备上,相机捕捉对话框和我的 dshow 代码一样慢。手机是即时的,似乎正在使用 CCD,虽然......相同的用户界面,但我猜它已针对该特定手机进行了大量优化。很抱歉!
标签: windows-mobile directshow image-capture