2017-08-03 66 views
1

我正在与ARKit一起进行一个项目,我正在尝试对ARFrame.capturedImage进行透视校正,以便将一张纸放置在检测到的平面上,以便将其送入CoreML模型,该模型期望图像要从头顶上直接拍摄。ARKit透视校正

ARKit给我相对于飞机的设备方向(ARCamera.transform,ARCamera.eulerAnglesARCamera.projectionMatrix都看起来很有希望)。

所以我有相机的方向(我知道飞机是水平的,因为这是所有ARKit现在检测)..但我不能完全弄清楚如何创建一个GLKMatrix4将执行正确的透视校正。

最初我以为它会像转换ARCamera.projectionMatrix的倒数一样简单,但看起来根本不起作用;我不完全确定矩阵描述的是什么......它基于设备方向似乎没有太大的改变。

我已经尝试使用GLKMatrix4Rotate和roll/pitch/yaw创建我自己的矩阵,但没有工作..我甚至无法使用单个旋转轴工作。

我发现GLKMatrix4MakePerspectiveGLKMatrix4MakeOrthoGLKMatrix4MakeFrustum这似乎做透视变换,但我无法弄清楚如何利用我的资料并将其翻译的那些功能的输入,使正确观念的转变。

编辑: 作为一个例子,以更好地解释什么,我试图做的,我用Photoshop中的Perspective Warp工具转换的示例图像;我想知道的是如何提出一个矩阵,根据我对场景的信息进行类似的变换。

enter image description here

回答