我已经对这个主题进行了很多研究,但似乎我做错了什么,或者我的理解有些不对劲。
我只是想获得最佳性能(例如以 FPS 衡量),以便从我的 Android 驱动的智能手机中获取高质量图像,并将其直接显示给用户,无需任何修改。
由于我有一个功能非常强大的智能手机(Nexus 4),我认为这应该是一项微不足道的任务。但我所有的努力都没有得到回报。例如,使用最新的 OpenCV 框架,我只为 800x480 流实现了大约 10 FPS。
那么,仅从手机摄像头抓取和显示高质量视频是否有可能实现 >25FPS?如果是这样,最好的策略是什么?设备特定的考虑也是受欢迎的。
我使用的资源:
- http://obviam.net/index.php/texture-mapping-opengl-android-displaying-images-using-opengl-and-squares/
- http://mesai0.blogspot.de/2013/01/android-native-camera-with-opencv-and.html
- http://opencv.org/
更新:通过在使用SurfaceTexture和TextureView作为相机接收器时简单地设置记录提示, 我已经能够将抓取性能提高到几乎恒定的 ~25FPS@1280x720 。
然而,我想知道是否有可能进一步提高性能。我尝试使用不同的预览格式,但没有运气。也许我不知道的抓取性能有隐含的上限。
尽管如此,我会继续研究并随时通知您。仍然欢迎各种信息!