我想计算从相机到具有给定高度的像素位置(在世界坐标中)的光线方向,如本文所述。相机图像大小为 640,480。我校准了相机的内在参数并且不扭曲每个图像。我测量了相机和背景平面之间的物理距离(29 厘米),如下所示:
1 厘米转换为 25 像素(假设为二次像素)。我的第一种方法是根据像素和相机位置进行计算,如下所示:
float3 pixPos = (float3)(u, v, z);
float3 camPos = (float3)(height/2, width/2, 29*25);
float3 ray = normalize(pixPos-camPos);
其中 u,v 是从 0,0 到 height,width 的图像坐标,z 是我的(已经估计的)高度值。这似乎不是正确的方法。我已经在 SO 上进行了搜索并找到了这个答案,但是那里描述的解决方案不包括像素高度(此处为 z)。