是否可以使用 OpenCV 的 libnative_camera*.so 控制 Android 相机的自动对焦功能?
或者也许可以手动设置焦距?
是否有替代方法(可能,最好使用 Android API 来控制相机,然后在 onPreview 事件中抓取帧并将其传递给 native 代码)?
最佳答案
如果您打算自己控制相机,那么 Android 相机 API 很糟糕。因此,在向 JavaCV 原生相机库提供硬件相机设备编号时,Android API 很糟糕。如果没有 native 设备编号,JavaCV 将无法连接到适当的相机(正面或背面)。
如果您的 Intent 只是执行对象检测和其他东西,那么结合 JavaCV 的 Android Camera API 应该可以工作。设置足够大小的回调缓冲区,setPreviewCallbackWithBuffer,设置足够的预览帧速率,一旦您开始获取 ImageFormat.NV21 格式的预览帧(请注意!!,即使在 ICS 中,这是预览帧支持的唯一格式),将它们传递给 JavaCV 以执行对象检测。
Android 相机 API 上的自动对焦非常耗时。我已经研究了一个多月来寻找可行的解决方案。
关于android - 适用于 Android 的 OpenCV : Autofocus native camera,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9822446/