根据相机位置找到两个原点之间的平移
Find the translation between two origins based on the camera positions
我已经根据相机视野中的两个原点确定了相机位置。假设原点 1 位于 (140,200),原点 2 位于 (70,180)。
以下是相对于原点 1 和原点 2 的相机位置。
X1,Y1,Z1,X2,Y2,Z2 = 0.8361721744324895,-0.5131803297263005,1.3708440418732257,0.09985411281689659,0.3329507542440152,1.342809058827907
而 (X1, Y1, Z1) 是相机相对于原点 1 的位置,而 (X2, Y2, Z2) 是相机相对于原点 2 的位置。
我使用以下代码来计算两个来源之间的翻译。
dist = math.sqrt((X1-X2) ** 2 + (Y1-Y2) **2 + (Z1-Z2)**2)
但是,该值是一个标量,而不是基于它们各自的相机位置的原点之间平移的矢量 (XYZ) 值。我怎样才能得到 XYZ 距离?
考虑除您的两个来源之外的第三个来源。
关于这个第三原点,让相机的位置向量,第一原点,第二原点分别为r_c
,r_1
,和r_2
。
相对于第一个原点,令相机的位置向量为r_c_1
相对于第二个原点,令相机的位置向量为r_c_2
用--
作为向量减法的符号,我们有:
r_c_1 = r_c -- r_1
r_c_2 = r_c -- r_2
由以上两个方程,一个方程减去另一个方程,我们得到:
r_c_2 -- r_c_1 = (r_c -- r_2) -- (r_c -- r_1)
这在简化时给出:
r_c_2 -- r_c_1 = r_1 -- r_2
在上面的等式中,RHS 就是你想要的(两个原点之间的平移向量)。 LHS 是两个原点下相机位置之间的矢量减法。
因此,如果向量以三元组表示法表示,则令 r_c_1
和 r_c_2
分别为 (x1, y1, z1)
和 (x2, y2, z2)
。然后,根据上面的等式,要求“origin-translation-vector”将 (x2-x1, y2-y1, z2-z1)
我已经根据相机视野中的两个原点确定了相机位置。假设原点 1 位于 (140,200),原点 2 位于 (70,180)。
以下是相对于原点 1 和原点 2 的相机位置。
X1,Y1,Z1,X2,Y2,Z2 = 0.8361721744324895,-0.5131803297263005,1.3708440418732257,0.09985411281689659,0.3329507542440152,1.342809058827907
而 (X1, Y1, Z1) 是相机相对于原点 1 的位置,而 (X2, Y2, Z2) 是相机相对于原点 2 的位置。
我使用以下代码来计算两个来源之间的翻译。
dist = math.sqrt((X1-X2) ** 2 + (Y1-Y2) **2 + (Z1-Z2)**2)
但是,该值是一个标量,而不是基于它们各自的相机位置的原点之间平移的矢量 (XYZ) 值。我怎样才能得到 XYZ 距离?
考虑除您的两个来源之外的第三个来源。
关于这个第三原点,让相机的位置向量,第一原点,第二原点分别为r_c
,r_1
,和r_2
。
相对于第一个原点,令相机的位置向量为r_c_1
相对于第二个原点,令相机的位置向量为r_c_2
用--
作为向量减法的符号,我们有:
r_c_1 = r_c -- r_1
r_c_2 = r_c -- r_2
由以上两个方程,一个方程减去另一个方程,我们得到:
r_c_2 -- r_c_1 = (r_c -- r_2) -- (r_c -- r_1)
这在简化时给出:
r_c_2 -- r_c_1 = r_1 -- r_2
在上面的等式中,RHS 就是你想要的(两个原点之间的平移向量)。 LHS 是两个原点下相机位置之间的矢量减法。
因此,如果向量以三元组表示法表示,则令 r_c_1
和 r_c_2
分别为 (x1, y1, z1)
和 (x2, y2, z2)
。然后,根据上面的等式,要求“origin-translation-vector”将 (x2-x1, y2-y1, z2-z1)