我在解释http://www.cvg.reading.ac.uk/PETS2001/pets2001-cameracalib.html#dataset2上的相机校准数据时遇到问题 ,想知道是否有人可以提供帮助。基本上我理解了这个例子,当我尝试计算 3D 对象的 2D 图像坐标时,它可以正常工作。我得到的二维坐标在图像边界内,这很好。
问题是当我尝试将工作应用于其他矩阵时。为了让您深入了解,这些校准矩阵适用于在以下位置找到的视频
例如考虑 Dataset 2 Camera 2 的变换矩阵:
FocalLength f=792
ImageCentre (u,v) = (384, 288)
Homogeneous Transform T =
-0.94194 0.33537 -0.01657 0.00000;
-0.33152 -0.93668 -0.11278 0.00000;
-0.05334 -0.10073 0.99348 0.00000;
11791.10000 22920.20000 6642.89000 1.00000;
根据数据集顶部的说明,第一步是将矩阵求逆得到:
-0.94194 -0.33152 -0.05334 0;
0.33538 -0.93669 -0.10074 0;
-0.01657 -0.11277 0.99348 0;
3529.67074 26127.15587 -3661.65672 1;
然后以世界坐标中的点 x = (0,0,0) 为例。
xT = (3529.67074,26127.15587,-3661.65672) and the point in 2D coordinates is given by
(792 x 3529.67074 / -3661.65672 + 384, 792 x 26127.15587 / -3661.65672 + 288)
= (-763.45 + 384 , -5651.187 + 288)
= (-379.45, -5363.187)
现在这个答案显然是不正确的,因为答案应该在图像边界内。事实上,当我尝试在我的程序中使用这些信息时,3D 世界中地平面上的点被错误地转换为 2D 图像坐标。
如果有人能就如何正确应用工作提供任何想法,我将不胜感激。
谢谢,