将ARFrame中的CapturedImage转换为竖屏/垂直方向

3

ARFrame中的CapturedImage是横向/水平的。我该如何将其更改为纵向?

谢谢。

2个回答

3

这里有相应的API。

ARFrame.displayTransform(for:viewportSize:) 会返回一个转换矩阵,将图像从传感器原生方向旋转到你指定的任意UI方向,并提供一个缩放因子以适应视口,其宽高比不一定与相机相同。

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

  • 查看基于Metal的 ARKit 应用程序的Xcode项目模板,以了解如何将该转换矩阵传输给顶点着色器。

  • 从像素缓冲区创建一个 Core Image 的CIImage,然后使用transformed(by:) 获取旋转后的图像,然后将其转换为UIImage,并在UIImageView中显示。


1
displayTransform 不仅旋转,还会进行平移和缩放以填充纵横比。除非你在进行低级别的绘图,否则这可能不是你想要的:https://dev59.com/3i8AtIcB2Jgan1zn10Fx#67083525 - Justin Meiners

0

frame.displayTransform(for: .portrait, viewportSize: CGSize(width: height, height: width)).inverted() 将我的竖屏 CGRect 旋转到了 ARFrame 捕捉图像的横向方向。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接