swift – 如何在ARKit中提高相机质量

我正在构建一个ARKit应用程序,我们希望能够拍摄场景照片.我发现ARCamera视图的图像质量不足以在iPad Pro上拍照.

标准相机图片

ARCamera图片

我看到一个Apple论坛帖子提到这可能是iPad Pro 10.5特定的,并且与固定镜头位置有关(https://forums.developer.apple.com/message/262950#262950).

是否有改变设置的公共方式?

或者,我尝试使用AVCaptureSession拍摄普通照片并将其应用于sceneView.scene.background.contents,以便在拍摄照片时切换出较高分辨率图像的模糊图像,但无法使用AVCapturePhotoOutput进行处理ARKit

更新:恭喜提交 feature requests的人!在iOS 11.3(又名“ARKit 1.5”)中,您可以控制至少一些捕获设置.现在,您可以获得1080p,认情况下启用自动对焦.

检查ARWorldTrackingConfiguration.supportedVideoFormats获取ARConfiguration.VideoFormat对象的列表,每个对象定义分辨率和帧速率.列表中的第一个是当前设备支持认(和最佳)选项,因此如果您只想获得最佳分辨率/帧速率,则无需执行任何操作. (如果你想通过设置videoFormat来降低性能原因,那么最好根据数组顺序而不是硬编码大小来做到这一点.)

认情况下,自动对焦在iOS 11.3中处于启用状态,因此您的示例图片(主题相对靠近相机)应该会更好.如果由于某种原因你需要将其关闭,there’s a switch for that.

仍然没有用于更改ARKit使用的基础捕获会话的相机设置的API.

根据WWDC工程师的说法,ARKit使用有限的摄像头捕获功能子集来确保高帧速率,同时对cpu和GPU的使用影响最小.制作更高质量的实时视频需要一些处理开销,但是计算机视觉和运动传感器集成系统也会产生一些处理开销,这些系统会使ARKit工作 – 增加开销太多,并开始增加延迟.对于一种应该向用户展示他们世界的“实时”增强视图的技术,您不希望“增强”部分通过多个帧来延迟相机运动. (另外,除此之外,您可能还需要一些cpu / GPU时间留给您的应用,以便在相机视图上呈现漂亮的3D内容.)

iPhone和iPad设备之间的情况是一样的,但是你在iPad上更多地注意到它只是因为屏幕太大了 – 在4-5英寸屏幕上720p视频看起来并不那么糟糕,但看起来很糟糕填写一个10-13“的屏幕. (幸运的是,你在iOS 11.3中认获得1080p,看起来应该更好.)

AVCapture系统确实可以在视频捕获期间拍摄更高分辨率/更高质量的静态照片,但ARKit不会以任何方式暴露其内部捕获会话,因此您无法使用AVCapturePhotoOutput. (在会话期间捕获高分辨率静止图像可能仍然是一个很好的feature request.)

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...