我在我的应用程序功能中遇到了困难,我想要类似于Cam Scanner Cropping的裁剪功能。 CAM-SCANNER的屏幕如下: 我已经创建了类似的裁剪视图。
我已经获得了四个角的CGPoint。但是如何获得倾斜的裁剪图像。
如果可能,请提供一些建议。
我在我的应用程序功能中遇到了困难,我想要类似于Cam Scanner Cropping的裁剪功能。 CAM-SCANNER的屏幕如下: 我已经创建了类似的裁剪视图。
我已经获得了四个角的CGPoint。但是如何获得倾斜的裁剪图像。
如果可能,请提供一些建议。
cvPerspectiveTransform第一个函数会使用源和目标投影坐标计算变换矩阵,在你的情况下,src数组将包含所有角落的CGPoint值。而dest将具有矩形投影点,例如{(0,0)(200,0)(200,150)(0,150)}。
cvWarpPerspective一旦获得变换矩阵,您需要将其传递给第二个函数。您可以访问这thread。
可能还有一些其他替代OpenCV库的方法,但它具有良好的图像处理算法集合。
iOS应用程序与opencv库可在eosgarden上找到。
使用链接中提供的代码:http://www.hive05.com/2008/11/crop-an-image-using-the-iphone-sdk/
不要使用CGRect和CGContextClipToRect,而是尝试使用CGContextEOClip或CGContextClosePath。
虽然我没有尝试过这个...但我已经尝试在TouchesBegan、TouchesMoved和TouchesEnd事件中使用CGContextClosePath绘制闭合路径。
希望这能给你的问题提供更多的见解...