ARKit透视校正
问题描述:
我正在与ARKit
一起进行一个项目,我正在尝试对ARFrame.capturedImage
进行透视校正,以便将一张纸放置在检测到的平面上,以便将其送入CoreML
模型,该模型期望图像要从头顶上直接拍摄。ARKit透视校正
ARKit
给我相对于飞机的设备方向(ARCamera.transform
,ARCamera.eulerAngles
和ARCamera.projectionMatrix
都看起来很有希望)。
所以我有相机的方向(我知道飞机是水平的,因为这是所有ARKit
现在检测)..但我不能完全弄清楚如何创建一个GLKMatrix4
将执行正确的透视校正。
最初我以为它会像转换ARCamera.projectionMatrix
的倒数一样简单,但看起来根本不起作用;我不完全确定矩阵描述的是什么......它基于设备方向似乎没有太大的改变。
我已经尝试使用GLKMatrix4Rotate
和roll/pitch/yaw创建我自己的矩阵,但没有工作..我甚至无法使用单个旋转轴工作。
我发现GLKMatrix4MakePerspective
,GLKMatrix4MakeOrtho
和GLKMatrix4MakeFrustum
这似乎做透视变换,但我无法弄清楚如何利用我的资料并将其翻译的那些功能的输入,使正确观念的转变。
编辑: 作为一个例子,以更好地解释什么,我试图做的,我用Photoshop中的Perspective Warp
工具转换的示例图像;我想知道的是如何提出一个矩阵,根据我对场景的信息进行类似的变换。