4

我对使用 ARKit 跟踪手机位置以使用相机自动拍照的能力感兴趣。我最初的调查使我了解到,虽然 ARKit 使用相机,但使用标准 AVFoundation 方法无法获得高质量的图像(由于相机正在使用中)。

我知道我可以使用sceneView.snapshot(),但它可以提供的最佳质量是 1080p,它的质量不足以用于我的应用程序。

我的问题是,还有其他方法可以在 ARSession 运行时从后置摄像头捕捉高质量照片吗?如果没有,是否有任何替代 ARKit 来估计手机位置的方法?

4

1 回答 1

3

这可能不会为您提供您正在寻找的分辨率,但我注意到使用currentFrame.capturedImage属性上的属性会ARSession产生比sceneView.snapshot().

这是在我的 iPhone 7 上使用调试器的示例:

(lldb) po sceneView.snapshot()
<UIImage: 0x282331180>, {750, 1334}

(lldb) po UIImage(pixelBuffer: session.currentFrame.capturedImage)
▿ Optional<UIImage>
  - some : <UIImage: 0x282331e30>, {1920, 1440}

分辨率可能会因您的硬件而异。

要检查的另一件事是您是否覆盖videoFormatARConfiguration. 您可以使用 .检查您的设备支持哪些视频格式ARWorldTrackingConfiguration.supportedVideoFormats

于 2018-11-15T19:23:38.763 回答