我卡在我的应用程序功能中了。我想要类似于 Cam Scanner Cropping 的裁剪功能。 CAM-SCANNER 的屏幕是: 我创建了类似的裁剪 View 。
我得到了四个角的CGPoint。 但是我怎样才能获得倾斜的裁剪图像。
如果可能,请给我一些建议。
最佳答案
这是一个透视变换问题。在这种情况下,他们在 2D 平面中绘制 3D 投影。
因为,第一个图像的选择角是四边形的,当您将其转换为矩形时,您将需要添加更多像素信息 ( interpolation ) 或删除一些像素。
所以现在实际的问题是向裁剪后的图像添加额外的像素信息并将其投影以生成第二张图像。它可以通过多种方式实现:
<>您可以通过应用带插值的透视变换矩阵自行实现。
<> 你可以使用 OpenGL .
<> 你可以使用 OpenCV . ..还有更多的方法来实现它。
我已经使用 OpenCV 解决了这个问题。 OpenCV 中的以下函数将帮助您实现这一目标。
第一个函数将使用源和目标投影坐标计算变换矩阵。在您的情况下, src 数组将具有来自 CGPoint 的所有角的值。并且 dest 将具有矩形投影点,例如 {(0,0)(200,0)(200,150)(0,150)}。
获得转换矩阵后,您需要将其传递给第二个函数。你可以访问这个thread .
OpenCV 库可能没有其他替代品,但它有很好的图像处理算法集合。
带有 opencv 库的 iOS 应用程序可在 eosgarden 获得.
关于iphone - 像 camscanner 一样裁剪 UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10477195/