Algorithm 寻找仿射变换使两个形状相似

Algorithm 寻找仿射变换使两个形状相似,algorithm,computational-geometry,Algorithm,Computational Geometry,假设我们有两个凸多边形,即A和B,它们的顶点位置是给定的。我们应用一些仿射变换,以便 1) A和B尽可能相似,并且 2) A包含B 问题: 1) 我怎样才能找到这样的转变 2) 如果我们将变换限制为旋转、缩放、平移和反射(可选),该怎么办 (A和B的顶点数量不必相同。)有许多不同的相似性度量。你有什么特别的措施吗?(例如,考虑到A包含B的要求,您可能希望最大化面积(B)/面积(A)。但这只是一种可能性。)如果使用简单的平方距离,则解算(1)将成为一个简单的线性最小二乘问题。如果您仅限于刚体变换,

假设我们有两个凸多边形,即A和B,它们的顶点位置是给定的。我们应用一些仿射变换,以便

1) A和B尽可能相似,并且

2) A包含B

问题:

1) 我怎样才能找到这样的转变

2) 如果我们将变换限制为旋转、缩放、平移和反射(可选),该怎么办


(A和B的顶点数量不必相同。)

有许多不同的相似性度量。你有什么特别的措施吗?(例如,考虑到
A
包含
B
的要求,您可能希望最大化
面积(B)/面积(A)
。但这只是一种可能性。)如果使用简单的平方距离,则解算(1)将成为一个简单的线性最小二乘问题。如果您仅限于刚体变换,则可以使用Kabsch算法解决该问题。还有一些扩展允许缩放。但是,第二个约束非常困难(非连续)。为了在合理的时间内找到解决方案,您可能需要一个近似值。@NicoSchertler a和B的顶点数不一定相等,因此简单的平方距离不适合。在这种情况下,有没有一种距离度量方法有效?@MarkDickinson目前我还没有一种特定的相似性度量方法。两个形状“相似”,只要它们“看起来相似”。那么Hausdorff距离可能是合适的。但是,由于其不连续导数,也很难进行优化。。