gpt4 book ai didi

math - 如何从相机校准数据绘制相机和图像位置?

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

我有相机的内在和外在参数。
外部是带有旋转和平移的 4 x 4 矩阵。

我有下面的示例数据,每张相机图像都有这个。

2.11e-001 -3.06e-001 -9.28e-001 7.89e-001 
6.62e-001 7.42e-001 -9.47e-002 1.47e-001
7.18e-001 -5.95e-001 3.60e-001 3.26e+000
0.00e+000 0.00e+000 0.00e+000 1.00e+000

我想绘制 Matlab calibration toolkit page 上给出的图像Camera CenteredWorld centered
但是我无法弄清楚如何绘制这两个图像的数学。


我唯一的线索来自此页面 http://en.wikipedia.org/wiki/Camera_resectioning .这告诉我可以通过 C = − R` 找到相机位置。吨

知道如何完成这项任务吗?

最佳答案

假设您要绘制的平面的角是 3x1 列向量,a = [0 0 0]', b = [w 0 0]', c = [wh 0]' 和 d = [0 h 0]' .

假设您提供的校准矩阵是 A 并且由旋转矩阵 R = A(1:3, 1:3) 和平移 T = A(1:3, 4) 组成。

绘制第一个 View
对于具有旋转 R_i 和平移 T_i 的每个姿势 A_i,将平面的每个角 x_w(即 a、b、c 或 d)变换为其在相机中的坐标 x_c

x_c = R_i*x_w + T_i

然后绘制带有变换角的平面。

要绘制相机,其在相机坐标中的投影中心为 [0 0 0]',相机 x 轴为 [1 0 0]',y 轴为 [0 1 0]',z 轴为 [0 0 1] '。

请注意,在图中,相机 y 轴指向下方,因此您可能希望通过乘以 B = [1 0 0; 对所有计算的坐标应用额外的旋转; 0 0 1; 0 -1 0]。

绘制第二个 View
绘制平面是微不足道的,因为我们处于世界坐标中。只需使用 a、b、c 和 d 绘制平面。

要绘制相机,每个相机中心是 c = -R'*T。相机轴是旋转矩阵 R 的行,例如,在您提供的矩阵中,x 轴是
[2.11e-001 -3.06e-001 -9.28e-001]'。您还可以通过 x_w = R'*(x_c - T) 将相机坐标中给出的每个点 x_c 转换为世界坐标 x_w 并绘制它来绘制相机。

关于math - 如何从相机校准数据绘制相机和图像位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8178467/

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