使用 ARKit 拍摄高质量照片

npr*_*f50 5 augmented-reality ios swift arkit

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

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

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

Har*_*iia 4

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

\n\n

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

\n\n
(lldb) po sceneView.snapshot()\n<UIImage: 0x282331180>, {750, 1334}\n\n(lldb) po UIImage(pixelBuffer: session.currentFrame.capturedImage)\n\xe2\x96\xbf Optional<UIImage>\n  - some : <UIImage: 0x282331e30>, {1920, 1440}\n
Run Code Online (Sandbox Code Playgroud)\n\n

分辨率可能会根据您的硬件而有所不同。

\n\n

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

\n