我对使用ARKit跟踪手机位置以使用相机自动拍照的功能感兴趣。最初的调查使我了解到,虽然ARKit使用相机,但无法使用标准AVFoundation方法获得高质量的图像(由于使用了相机)。
我了解我可以使用sceneView.snapshot()
,但是它可以提供的最佳质量是1080p,这对于我的应用程序来说还不够高。
我的问题是,在ARSession运行时,是否还有其他方法可以从后置摄像头捕获高质量照片?如果没有,ARKit是否有其他替代方法可以估算手机的位置?
答案 0 :(得分:0)
这可能无法为您提供所需的分辨率,但是我注意到,在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}
分辨率可能会因您的硬件而异。
要检查的另一件事是,是否要覆盖videoFormat
的{{1}}属性。您可以使用ARConfiguration
检查设备支持的视频格式。