使用Vuforia开发AR程序中,时常遇到相机对焦,启用、关闭识别功能,动态加载识别特征等情况,下面总结一下以往开发过程中遇到的具体情况及使用的方法。
一、相机对焦
使用Vuforia时,偶尔会有晃动手机导致的画面模糊并且无法自动恢复的情况,特别是使用比较老的设备或设备本身摄像头像素较低,对识别影响很大。那么通过代码对相机进行设置,使得这种情况下能让相机重新对焦是很有必要的。方法很简单,Vuforia的SDK中,有一个CameraDevice类,是对相机的设置,其中包含SetFocusMode接口,使用这个接口可以设置相机对焦。实际应用过程中,发现网上说的调用CameraDevice.Instance.SetFocusMode(CameraDevice.FocusMode.FOCUS_MODE_CONTINUOUSAUTO);并不能实现模糊后再次对焦。经过一番搜索与尝试,最终使用如下方法,可以实现模糊后再次对焦。
public void TriggerAutoFocus()
{
StartCoroutine(TriggerAutoFocusAndEnableContinuousFocusIfSet());
}
private IEnumerator TriggerAutoFocusAndEnableContinuousFocusIfSet()
{
CameraDevice.Instance.SetFocusMode(CameraDevice.FocusMode.FOCUS_MODE_TRIGGERAUTO);
yield return new WaitForSeconds(1.0f);
CameraDevice.Instance.SetFocusMode(CameraDevice.FocusMode.FOCUS_MODE_CONTINUOUSAUTO);
}