基于2D中4个点的透视投影



我写这篇文章是为了询问单应性和透视投影。

我正试图写一段代码;翘曲;我的图像,使其角与3D空间中的4个参考点对齐-然而,我运行它的游戏引擎已经允许我获得它们的屏幕位置,因此我已经将它们的屏幕空间坐标xi,yi和ui,vi标准化为0和1之间的值。

我不得不提的是,我没有数学学位,这似乎是我迄今为止看到的关于这个话题的帖子中的一个要求,但我希望这个问题真的有一个可以理解的解决方案。我从来没有机会上计算机视觉的课。

我来这里的原因是,在我在网上看到的所有帖子中,我遇到的简单解释是,每个点必须放入1x3矩阵中,并乘以3x3单应性,它由9个分量h1、h2、h3…h9组成,这个变换矩阵将把每个点变换到正确的角度。这就是我碰到砖墙的地方——我如何计算变换矩阵?感觉这应该是一个相对简单的代数任务,但显然不是。

在这一点上,我花了几天时间阅读这个主题,我遇到的解决方案要么基于matlab(其中内置了大量数学函数(,要么包括没有太多解释的详细说明和讨论;有时,它们提出了大量不同的参数和简化,但很少解释它们的原因和目的,或者它们引用了后来从网上删除的书籍和研究,我发现自己比一开始更困惑。我在网上找到的大多数资源也是在不同的背景下制作的——图像拼接和3d引擎开发。

我还想提到,我需要在CPU上的每一帧上运行这段代码,我非常担心必须运行太多矩阵变换和求解大量线性代数方程的影响。

我很抱歉没有问任何具体的代码,但我的总体问题是——有人能为我指出这个问题的正确方向吗?

限制您处理的问题。

例如,如果始终扭曲整个矩形图像,则可以将图像角点的坐标视为{(0,0(,(1,0(,(0,1(和(1,1(}。这可以简化方程,你就可以自己求解方程了。因此,您将能够实现答案。

注:同调是标度不变的。所以你可以把自由度降低到8。(例如,你可以在h9=1的条件下求解方程(。

我能给的最好建议是:读一本关于这个主题的好书。例如;"多视图几何";Hartley和Zisserman

最新更新