如何使用ARCamera的Projection Matrix歪斜图像?

时间:2018-09-03 11:42:24

标签: ios swift math image-processing arkit

我想使用我们在snapshot of ARSCNViewprojectionMatrix中获得的值对图像(eulerAngles进行歪斜处理,或者对ARCamera的属性进行变换。还是有其他方法可以使用从ARKit获得的任何值来偏移图像?我的假设是projectionMatrix给我们透视失真值。 我们可以不选择四个点就歪斜吗?任何指向正确方向的指针都会有很大帮助。

这是我尝试使用projectionMatrix和eulerAngles值的尝试之一:

func deskewImage(camera: ARCamera) {
     let rotationZ = CGFloat(camera.eulerAngles.z)

     var transform = CATransform3DIdentity
     transform.m34 = CGFloat(camera.projectionMatrix.columns.2.z)
     transform = CATransform3DRotate(transform, rotationZ, 0, 0, 1)

     self.imageView.layer.transform = transform
}

我能够使用CIPerspeciveCorrection使用矩形检测对图像进行偏斜处理(就像CamScanner应用程序一样),但是它仅对检测到的矩形进行偏斜处理并对其进行裁剪。我希望像this example所示那样歪曲完整图像,而不选择四个点。

我正在寻找使用ARKit的方法,因为值已经很麻烦了。

0 个答案:

没有答案