如何从ARKit获取投影,旋转和平移矩阵?

时间:2018-03-13 17:35:37

标签: ios arkit

嗨我需要用iphone拍摄一组照片并阅读相应的投影矩阵,旋转和平移矩阵以进行后期处理。我以前从未使用过ARKit或在Swift / Object C中编程过。入门的最佳方式是什么?

1 个答案:

答案 0 :(得分:1)

如果您在Xcode中创建默认AR项目,那么您将能够学习在Swift中运行AR应用程序的基础知识。

要读取您需要实现此功能的相机参数:

func session(_ session: ARSession, didUpdate frame: ARFrame) {
    guard let transform = frame.camera.transform else {return}
    let position = SCNVector3Make(transform.columns.3.x, transform.columns.3.y, transform.columns.3.z)

    let rotation = frame.camera.eulerAngles
    let projection = frame.camera.projectionMatrix

    print(position)
    print(rotation)
    print(projectionMatrix)
    print("================="
}

(即将该代码复制/粘贴为默认应用程序中ViewController类中的另一个函数。旋转以欧拉角给出。

鉴于你之前没有使用过Swift,这可能没那么有用。但从理论上讲,这就是你所需要的一切。

ARKit以每秒60帧的速度抓取帧(您可以更改此帧) - 每个新帧都会自动调用此函数。

如果您正在使用它来拍照,则必须添加更多代码才能使所有时间正确等等。