gpt4 book ai didi

Python从两组点中获取变换矩阵

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

我必须要图像,一个模拟,一个真实数据,有亮点。

模拟: Simulation

现实: reality

我可以很好地检测到这些点并获得坐标。现在我需要计算两个坐标系之间的变换矩阵(缩放、旋转、平移,也许还有剪切)。如果需要,我可以手工挑选一些(5-10)个对应的点给算法

我已经尝试了很多方法,包括:ICP的2个实现: https://engineering.purdue.edu/kak/distICP/ICP-2.0.html#ICP

https://github.com/KojiKobayashi/iterative_closest_point_2d

实现仿射变换: https://math.stackexchange.com/questions/222113/given-3-points-of-a-rigid-body-in-space-how-do-i-find-the-corresponding-orienta/222170#222170

仿射变换的实现: Determining a homogeneous affine transformation matrix from six points in 3D using Python

how to perform coordinates affine transformation using python? part 2

他们中的大多数人都会像这样以某种方式失败: enter image description here红色点是模拟转换到现实坐标系中的点。

目前最好的方法是这个 how to perform coordinates affine transformation using python? part 2产生这个: enter image description here

如您所见,缩放和平移大部分都有效,但图像仍需要旋转/镜像。

关于如何获得有效算法的任何想法?如果需要,我可以提供我当前的非工作实现,但它们基本上是链接的。

最佳答案

我发现了错误。

我使用 plt.imshow 来显示模拟图像和真实图像,然后从那里选择引用点来计算变换。

事实证明,由于通常的 array-to-image-index-flipping-voodoo(或者我这边对转换的错误理解),我需要从模拟中切换引用点的 x 和 y 索引图片。

有了这个,使用这个 how to perform coordinates affine transformation using python? part 2 一切正常

关于Python从两组点中获取变换矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42953880/

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