gpt4 book ai didi

algorithm - Procrustes 分析/找到由两组 2d 点表示的两个图像之间的角度

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:11:31 28 4
gpt4 key购买 nike

如果我有 2 组点,我可以用 Procrustes analysis 旋转一组将一个与另一个对齐。

但是假设这 2 组点每个都附加到图像上,我也想旋转图像。有什么方法可以旋转图像,而不是只旋转点?那里的教程使用点积进行旋转(求解 u, s, v = svd(p1', p2) 然后执行 p2 . v . u', p'被转置 p)

但是这并没有告诉我图像之间的角度是多少。

The page on wikipedia计算我认为的每对点之间的角度。

也许我问的是不可能的?如果我旋转第一组点使其与第一组点对齐,我不能也将相应的图像也旋转一个角度吗?重点是,那是哪个角度?

我注意到 v 。 u' 给了我一个 2 x 2 矩阵,它似乎是旋转矩阵(有一个维基百科页面,但由于发布权限我无法链接到那里)。我得到了第三个和第一个元素的 sin 和 cos,然后使用了 arctan2,但我得到的结果有点奇怪。我知道它们必须从弧度转换而来,但我不相信我所做的是正确的。在 gimp 上尝试它给我的旋转让我觉得这不是我想要的,但我会测试更多。

最佳答案

看来您的方法大部分是正确的。我想到了两件事:

1) 您链接到的论文(Procrustes 分析)除了旋转之外还涉及平移和缩放。根据这些操作是否也在您的图像上执行,您最终可能会得到看起来不匹配的奇怪结果。

2) 我认为您的角度计算可能过于复杂。 v * u' 似乎是正确的旋转矩阵,但我相信正确的角度只需要 2x2 矩阵中的矩阵条目之一。例如,只需使用第一个矩阵条目的 acos() 。正如您所注意到的,这将(取决于程序)以弧度为单位给出答案,如果您想在 gimp 等中尝试旋转,则必须将其转换为度数。

希望这对您有所帮助!

关于algorithm - Procrustes 分析/找到由两组 2d 点表示的两个图像之间的角度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5100173/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com