我想使用我们在snapshot of ARSCNView或projectionMatrix中获得的值对图像(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的方法,因为值已经很麻烦了。