假设我拍摄了两幅垂直偏移为H的全景图像,每张图像都以尺寸为Xm和Ym的equirectangular投影呈现。为此,我将全景相机放在A位置拍摄图像,然后移动相机H米并拍摄另一张图像。
我知道坐标为X1,Y1的图像1中的点是图像2上坐标为X2和Y2的相同点(假设X1 = X2,因为我们只有垂直偏移)。
我的问题是如何计算所选择的点的范围(知道其X1和Y1在图像1上的点,它在图像2上的位置是点A的X2和Y2(相机在图像no时) 1被采取。)。
答案 0 :(得分:1)
是的,你可以做到 - 坚持!!!
关键的事情y
=镜头的焦距 - 现在我可以做到!
所以,我认为你的问题可以更简单地重复说明,如果你将相机(图中的右侧)向上移动H
米,则一个点向下移动p
像素在从新位置拍摄的图像中。
像这样,如果你想象从侧面看,穿过你拍照。
如果你知道相机CCD的规格微米间距,你可以将p
从像素转换为米,以匹配H
的单位。
从相机到场景平面的范围由x
+ y
(底部为红色)和
x=H/tan(alpha)
y=p/tan(alpha)
所以你的范围是
R = x + y = H/tan(alpha) + p/tan(alpha)
和
alpha = tan inverse(p/y)
其中y是镜头的焦距。因为y
可能是50毫米,它可以忽略不计,因此,对于一个非常合理的近似值,你的范围是
H/tan(alpha)
和
alpha = tan inverse(p in metres/focal length)
或者,通过类似的三角形
Range = H x focal length of lens
--------------------------------
(Y2-Y1) x CCD photosite spacing
非常小心地将所有东西都放在米里。
答案 1 :(得分:0)
这是一个黑暗中的镜头,鉴于我对手头问题的理解,你想做类似于计算机立体视觉的事情,我指向你http://en.wikipedia.org/wiki/Computer_stereo_vision开始。不确定这是否仍然可以以您建议的方式进行,听起来您可能需要更多的物理限制,但我记得在经历严格的翻译后能够关联图像中的两个2d点。想想:
lambda[x,y,1]^t = W[r1, tx;r2, ty;ry, tz][x; y; z; 1]^t
lamda
是比例因子,W
是覆盖相机内部参数的3x3矩阵,r1, r2, and r3
是构成3x3旋转矩阵的行向量(在您的情况下)你可以假设身份矩阵,因为你只应用了翻译),tx, ty, tz
是你的翻译组件。
由于您在同一个三维点[x,y,z]
处查看两个2d点,因此这两个点由两个点共享。我不能说你是否可以合理化实际的x,y和z值,特别是你的深度计算,但这是我要开始的地方。