Math 如何根据摄像机校准数据绘制摄像机和图像位置?

Math 如何根据摄像机校准数据绘制摄像机和图像位置?,math,language-agnostic,matrix,camera-calibration,extrinsic-parameters,Math,Language Agnostic,Matrix,Camera Calibration,Extrinsic Parameters,我有相机的内在和外在参数。 外部是一个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 我想按照或上给出的方式绘制图像 但是,我无法计

我有相机的内在和外在参数。 外部是一个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
我想按照或上给出的方式绘制图像 但是,我无法计算出如何绘制这两幅图像的数学方法。

我唯一的线索就是这一页。这告诉我摄像机的位置可以通过C=− R`。T


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

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

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

绘制第一个视图 对于具有旋转R_i和平移T_i的每个姿势A_i,通过以下方式将平面的每个角x_w(即A、b、c或d)变换为其在摄影机中的坐标x_c:

x_c=R_i*x_w+T_i

然后用变换的角点绘制平面

要绘制相机,其在相机坐标系中的投影中心为[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]相乘,在所有计算坐标上应用附加旋转

绘制第二个视图 绘制平面很简单,因为我们在世界坐标系中。用a,b,c和d画平面

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

现在在opencv中有一个从其坐标生成的示例

它输出与原始问题类似的内容:

哇!你是怎么做到的,你是数学巫师还是什么?!很抱歉,我不太懂,所以我得实际试用一下。谢谢你的回复!!