Math 在打印点上调整几何图形

Math 在打印点上调整几何图形,math,geometry,trigonometry,image-manipulation,imaging,Math,Geometry,Trigonometry,Image Manipulation,Imaging,我画了一个向量几何体,周围有一些校准点 我打印这个几何图形,然后物理扫描打印的校准点(我不能扫描几何图形,我只能扫描校准点)。 当我获取这些点时,由于一些打印错误或错误的打印校准,这些点不再处于它们的位置 问题是: 是否有任何算法可以帮助我在扫描的新点的基础上调整原始几何体? 在实践中,我需要扭曲几何体,以获得打印在纸张上的真实几何体,其打印错误与我在校准点上的打印错误相同 变形是由打印过程中材料(不是纸张而是布料)的物理变形引起的。我不知道在打印过程中材料会变形多少。是的,有一些算法可以帮

我画了一个向量几何体,周围有一些校准点

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

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


变形是由打印过程中材料(不是纸张而是布料)的物理变形引起的。我不知道在打印过程中材料会变形多少。

是的,有一些算法可以帮助您做到这一点。一般来说,您需要学习/找到您拥有的两个图像之间的转换

典型的几何变换是仿射变换(平移、缩放、旋转、剪切、反射),至少需要三个控制点,或分段局部线性/局部加权平均,至少需要4-6个控制点。控制点越多,总体来说就越好

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

剩下的就是找到两幅图像中控制点之间的对应关系。对于一些图像,您可能可以手动完成,但在一般情况下,您也可能希望将其自动化。像这样的通用图像配准算法应该适合您的图像。它们为转换提供了一个良好的初始估计(可能已经足够了),因此相应点对的识别非常简单(总是取最近的值),并允许细化


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

有无数种可能的方法来完成您显然要求的任务。你还知道印刷和扫描过程中可能出现的失真类型吗?请详细说明一下Rory的评论:失真似乎不是标准模型之一(例如径向失真、透视变换等),你能对每个点的失真独立性说些什么?似乎存在一种潜在的粗失真模式(甚至可以用线性变换表示)。每个点上是否都有额外的(独立的)噪声?否则,最上面一行的中间点看起来真的不合适。采集设置中有哪些可能的失真源?谢谢大家。失真是由打印过程中材料(不是纸张而是布料)的物理失真引起的。我不知道在印刷过程中这些材料会偏离多少。有一个原始的点矩阵和一个最终的点矩阵(我可以在图形中插入超过8个点),我不能以任何方式计算路径的新点?