1

我正在研究透视投影,我偶然发现了这个概念: 在此处输入图像描述

基本上它说如果我有一个点(x,y,z),我可以通过这样做将它投影到我的透视屏幕(相机空间)中

x' = x/z
y' = y/z
z' = f(z-n) / z(f-n)

我不明白为什么 x' = x/z 或 y' = y/z

4

3 回答 3

1

看待这一点的一种方法是,您尝试做的是与一条穿过观察者位置(假设位于原点:)0,0,0和您希望投影的空间点 (P) 的线相交。

因此,您采用线的方程,即P' = P * a,其中a只是一个标量值并求解P'.Z = 1(这是您的投影平面所在的位置)。当标量倍数为 时,这是微不足道的1 / P.Z,因此投影点为(P.X, P.Y, P.Z) * (1 / P.Z)

于 2013-03-12T14:39:38.000 回答
1

在几何上,这是一个相似三角形的问题。

在您的图中,因为(x,y,x)与 位于同一条虚线上(x',y',z')

triangle [(0,0,0), (0,0,z), (x,y,z)]
  is similar to
triangle [(0,0,0), (0,0,z'), (x',y',z')]

这意味着相应的边具有固定的比例。而且,进一步,原始向量与投影向量成比例。最后,请注意,名义投影平面位于z' = 1

(x,y,z) / z   =  (x',y',z') / z'

  -> so, since z' = 1:
       x'/z' = x' = x/z
       y'/z' = y' = y/z

[警告:请注意,z'我的答案与问题中的出现不同。问题z' = f(z-n) / z(f-n)并不直接对应于物理点:它是一个“深度值”,用于执行隐藏表面移除等操作。]

于 2013-03-12T18:53:04.227 回答
0

齐次坐标使我们能够在无穷远处表示点/线。我们将 1 添加到向量表示中。3d空间中一点的距离越远,它倾向于向光学中心移动。笛卡尔到齐次 p=(x,y)to(x,y,1) 齐次到笛卡尔 (X, Y, Z)to(X/Z, Y/Z) 例如,1. 你在飞机上旅行并且当您向下看时,似乎点从一个瞬间移动到另一个瞬间并不快。这是距离非常大,距离=1/Disparity(两帧中同一点的漂移)。2.尝试用Infinity代入视差,表示距离为0。

于 2019-09-04T06:06:09.480 回答