在打印点上调整几何图形

时间:2017-05-05 12:17:17

标签: math geometry trigonometry image-manipulation imaging

我绘制了一个矢量几何体,周围有一些校准点。

Original draw

我打印这个几何体然后我物理扫描打印的校准点(我不能扫描几何体,我只能扫描校准点)。 当我获得这些点时,由于某些打印错误或打印校准错误,它们不再位于它们的位置。

Scanned image

问题是: 是否有任何算法可以帮助我在扫描的新点的基础上调整原始几何? 在实践中,我需要扭曲几何体,以获得打印在纸张上的真实几何体,并且在校准点上具有相同的打印错误。

在打印过程中,材料(不是纸张,布料)的物理变形会导致变形。我不知道材料在印刷过程中会扭曲多少。

1 个答案:

答案 0 :(得分:0)

是的,有一些算法可以帮助您。通常,您需要学习/找到您拥有的两个图像之间的转换。

典型的几何变换是仿射变换(移位,缩放,旋转,剪切,反射),其需要至少三个控制点或分段局部线性/局部加权平均值,其需要至少4-6个控制点。你拥有的控制点越多,一般情况就越好。

给定一个图像中的一组控制点和另一个图像中的相应控制点集合,如果指定一个类(仿射或分段局部线性),则存在用于找到最佳变换的算法。请参阅Matlab中的示例fitgeotrans。通过某种优化,我不知道它究竟是如何解决问题的。应该很容易找到其他编程语言(Python,C,Java)的可用实现。

剩下的是找到两个图像中的控制点之间的对应关系。对于一些图像,您可以手动执行此操作,但在一般情况下,您可能也希望自动执行此操作。像imregister这样的常规图像注册算法应该可以很好地适用于您的图像。它们为转换提供了一个很好的初始估计(可能已经足够),以便识别相应的点对是微不足道的(总是取最近的)并允许精炼。

所以我建议你首先尝试用身份转换作为起始值来注册图像(灰度数据)。然后使用仿射或片段/局部变换识别对应的点对并细化变换。然后在几何体上应用变换以获得打印的几何体。根据您选择的编程语言,您会发现许多实现这项工作的实现。