0

我想将轮廓上的一组参考点转换为一组相应的目标点。每个轮廓上共有 8 个点。

参考和对应的目标点

为了计算旋转和平移向量,我使用 Math.Net Numerics 库来执行 SVD 计算 - 这个想法来自这个 URL(第 3-7 页):

但不知何故,我注意到使用 SVD 计算结果完成的转换似乎不准确。结果如下图:

应用从 SVD 计算的平移向量后的统一结果

变换应该将参考点移动到尽可能靠近的目标点,但正如突出显示的那样,它远离目标点。

此外,我还做了一个简单的测试,计算了两个轮廓的质心并进行了推导:(TargetCentroid - RefCentroid = 平移向量)。最终的转换结果与通过 SVD 相同。

我做错了什么吗?任何人都可以提出一个更好的解决方案来将参考点转换为目标点吗?

编辑: 1.从参考模型到各种目标模型的服装转换

服装改造

4

1 回答 1

0

这似乎是一个过于复杂的问题解决方案。

如果你有目标点,你可以将给定的点映射到它们对应的目标点。

或者,如果目标是相同的网格,但与图片中的缩放和旋转不同,您可以分别调整变换值、缩放和旋转,而无需单独遍历所有点。

使用 Vector3.Lerp

编辑: 此外,lerping 将导致所有点同时达到其目标,在大多数情况下,这是所需的行为。

于 2016-03-03T10:17:15.177 回答