gpt4 book ai didi

opengl - 如何使用 3x3 单应性将立方体增加到特定位置

转载 作者:行者123 更新时间:2023-12-04 15:37:04 25 4
gpt4 key购买 nike

通过计算它们之间的 3x3 单应性,我能够在同一场景的不同图像上跟踪 4 个坐标。这样做我可以将其他 2D 图像叠加到这些坐标上。我想知道我是否可以使用这个单应性来将一个立方体增加到这个位置而不是使用 opengl?我认为 3x3 矩阵没有提供足够的信息,但是如果我知道相机校准矩阵,我可以获得足够的信息来创建模型 View 矩阵来执行此操作吗?

感谢您提供的任何帮助。

最佳答案

如果您有相机校准矩阵(内在参数)和单应性,因为单应性(同一平面物体的两个 View 之间)定义为:
H = K[R|T]
其中 K 是 3x3 校准矩阵,R(3x3 旋转矩阵)和 T(3x1 平移向量)是 View 变换(从对象坐标到相机坐标)。关于如何从 H 计算 R 和 T 有很多说法。一种方法是计算直接解,另一种方法是使用一些非线性最小化技术来计算 R 和 T。显然后一种方法更好,因为它会给出更好的近似解。前者只是开始做增强现实的一种方式;):

让我们看看在使用直接方法时如何推导 R 和 T。如果 h1、h2 和 h3 是
H 的列向量,根据 K、R 和 T 定义为:
H = K [r1 r2 t] (请记住,我们说的是 z=0 的点)

其中 r1 是 R 的第一列向量,r2 是第二列向量,t 是平移向量。然后:
r1 = l1 * (K^-1) h1r2 = l2 * (K^-1) h2r3 = r1 x r2 (r1 和 r2 之间的叉积)
t = l3 * (K^-1) h3
其中 l1,l2,l3 是比例因子(实际值):l1 = 1 / norm((K^-1)*h1)l2 = 1 / norm((K^-1)*h2)l3 = (l1+l2)/2
请记住,应使用非线性最小化方法改进此解决方案(例如,您可以将此解决方案用作起点)。你也可以使用一些畸变模型来从镜头畸变中恢复,但这一步是不必要的(即使没有它你也会得到很好的结果)。

如果您想使用最小化方法来计算 R 和 T 的更好近似值,有很多不同的方法。我建议你阅读论文

“来自视频图像的快速全局收敛姿态估计”,Lu, Hager

它为您提供了最好的算法之一。

关于opengl - 如何使用 3x3 单应性将立方体增加到特定位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5342330/

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