ARFrame 中的 CapturedImage 到 portrait/vertical

CapturedImage in ARFrame to portrait/vertical

ARFrame中的CapturedImage是landscape/horizontal。如何将其更改为纵向?

谢谢

There's an API for that.

ARFrame.displayTransform(for:viewportSize:) 给你一个变换矩阵,从图像的传感器原生方向旋转到你指定的任何 UI 方向,并提供一个比例因子来适应视口纵横比不一定与相机的纵横比相匹配。

然后您可以在您正在使用的任何显示管道中使用该变换来显示旋转后的图像。例如:

  • 检查基于 Metal 的 ARKit 应用程序的 Xcode 项目模板,了解它们如何将该变换矩阵提供给顶点着色器。

  • 从像素缓冲区创建一个核心图像CIImage,然后使用transformed(by:)得到一个旋转的图像,然后你可以将其转换为UIImage并显示在 UIImageView.

frame.displayTransform(for: .portrait, viewportSize: CGSize(width: height, height: width)).inverted() 将我的肖像 CGRect 旋转为 ARFrame 拍摄图像所用的横向。