将角点的四边形变形为具有给定纵横比的矩形 2D 图像

Warp quadrangle with for corner points to rectangular 2D image with given aspect ratio

我想用 Vision API 构建一个名片扫描仪。 所以我正在执行一个 VNDetectRectanglesRequest 具有特定矩形约束的名片格式(具有固定比例)。

因此,我得到了一个 VNRectangleObservation 对象,其中包含矩形的角点。这在 3D 中主要是一个矩形 space 但在 2D 中只是一个四边形,因为例如可以从侧面稍微捕获物理对象。

现在我想用这 4 个角点裁剪出图像,然后 warp/distort 将其裁剪成一个平面矩形,就像 iOS 笔记应用程序在捕获文档时所做的那样。

我不需要任何类似 AR 的文档纵横比预测,因为它是固定的(由名片格式决定)。

如何使用内部库在 Swift 中执行此操作,例如CoreGraphicsCoreImage?

好的,我发现这个 very similar question with a excellent answer pointing to CIPerspectiveCorrection 完全符合我的需要:接受图像并为点将其转换为 2D 矩形。

我不会删除我的问题,因为标题非常不同,我的问题可能会引导人们找到解决方案:]。