给定已知的周期性运动(例如,行走),我想在运动中的相同点处拍摄全分辨率快照(即,在不同时段内的相同时间偏移)。但是在Nexus S上(当前运行的是OS 4.1.1,但之前的操作系统版本也是如此),我发现快门滞后的变化太大,我无法准确计划快照的时间。这是50张照片的快门滞后的直方图。 (我在快门回调开始之前用Camera.takePicture()和另一个System.nanoTime()测量了一个System.nanoTime()的快门延迟。相机镜头一直被覆盖以消除由于光线引起的任何变化。)
我可以在应用程序中做些什么来减少这种快门滞后变化吗? (在这个应用中,平均滞后可以是任何持续时间,但标准偏差必须小...比上面直方图中显示的快门滞后的0.5秒标准偏差小得多。)我希望有人有一个聪明的建议。如果我没有收到任何建议,我会在Android错误跟踪器中发布功能请求。
更新: 按照理查德公司在https://groups.google.com/forum/?hl=en&fromgroups#!topic/android-developers/WaHhTicKRA0的建议,我关闭了自动对焦(通过将焦点设置为无限远) 它有所帮助,如下面的直方图所示。有任何减少快门滞后变化的想法吗?
更新2: 我禁用了剩余的自动参数:白平衡,场景模式,闪光灯。下面的快门滞后时间变化直方图似乎与运行OS 4.1.1的Nexus S一样好。可能通过在Camera.takePicture()中指定一个可选的最小快门延迟时间来降低快门延迟时间的可变性,这将会延迟快门,如果它在指定的最小值之前准备就绪,那将是很好的。我已向Android问题跟踪器发布了功能请求。如果您也有兴趣获得该功能,那么" star"它在http://code.google.com/p/android/issues/detail?id=35785
答案 0 :(得分:0)
什么是x轴,什么是y轴?
您可以使用低级编码(如NDK / renderscript)而不是使用java。
您可以更改相机的设置以加快速度。