在阅读有关针孔相机的一些材料以及它们的投影矩阵如何设置后,我正试图解决附带的问题,我仍然不确定我是否理解所有数学。 在附加的问题中,当我将相机的COP移动到-2Zp时,据我所知,我基本上增加了相机的焦点视图,这基本上给了我相同的矩阵,只有现在第3行的第3个元素是1 / 3Zp而不是1 / Zp,这是正确的吗?
如果是这样,你将如何计算t的新位置,将其乘以我得到的新矩阵(0,Yp,2/3)T。是确保最后一个数字是1而不是2/3的解决方案,所以我得到(0,2Yp / 3,1)。有人可以解释在这种情况下均匀坐标是如何工作的吗?
除了c很清楚外,我还会得到一个正交投影。 有人可以帮助d节吗?
答案 0 :(得分:1)
绘制图表可能会有所帮助。您可以通过忽略将所有内容都放在2D中的x坐标来简化操作。在这个简单的图中,为了找到点t的投影,在平面上,PP只需从针孔的位置到该点画一条线。这使得从应该投影每个点的图中很容易地计算出来。您可以使用它来检查矩阵中的计算结果。
你有一半的答案,如果我们在原点有一个针孔并且飞机距离3Zp,那么矩阵就会
( 1 0 0 0 )
M = ( 0 1 0 0 )
( 0 0 1/3Zp 0 )
仅当针孔位于原点时才有效。在部分a)它不是。
您需要做的是应用翻译。如果a)翻译所有内容,使COP2位于原点,则应用投影,然后应用翻译的反转。如果我们向M
添加第四行,那么工作会更容易 ( 1 0 0 0 )
M = ( 0 1 0 0 )
( 0 0 1 0 )
( 0 0 1/3Zp 0 ) Note modified form.
沿z轴的距离d的平移由
给出 ( 1 0 0 0 )
T = ( 0 1 0 0 )
( 0 0 1 d )
( 0 0 0 1 )
反过来只是
( 1 0 0 0 )
T'= ( 0 1 0 0 )
( 0 0 1 -d )
( 0 0 0 1 )
要获得最终投影矩阵
T' M T.
最后我们通过删除第三个坐标从4D(x,y,z,w)到3D(x,y,w)。您可以通过乘以3X4矩阵来完成此操作。
注意请参阅Transformation matrix section perspective projection以获取正确的透视投影形式。
为了使事物明确,让a = Zp。翻译是
( 1 0 0 0 )
T = ( 0 1 0 0 )
( 0 0 1 -2 a )
( 0 0 0 1 )
并且从原点到平面3Zp的投影是
( 1 0 0 0 )
M = ( 0 1 0 0 )
( 0 0 1 0 )
( 0 0 -1/(3a) 0 )
找到T'M T,结果是
( 1 0 0 0 )
N = ( 0 1 0 0 )
( 0 0 1/3 -2/3 a )
( 0 0 -1/(3a) 2/3 )
我们适用于我们的两点
( 0 ) ( 0 ) ( 0 )
N ( Yp ) = ( Yp ) -> ( Yp )
( -a ) ( -a ) ( -a )
( 1 ) ( 1 )
( 0 ) ( 0 ) ( 0 )
N ( Yp ) = ( Yp ) -> ( 3/4 Yp )
( -2a ) ( -4/3 a ) ( -a )
( 1 ) ( 4/3 )
在最后一步除以w的情况下,我们将(x,y,z)坐标放在平面z = -a = -Zp上。这些与我们从图中得到的结果一致。如果你想要你可以放弃N的第3行。
答案 1 :(得分:0)
好的,现在关于C和D. 在C中我假设如果你沿着Z轴移动COP到无穷大,你会得到一个正交投影。但我不确定矩阵是否会:
( 1 0 0 0 )
M = ( 0 1 0 0 )
( 0 0 0 0 )
或
( 1 0 0 0 )
M = ( 0 1 0 0 )
( 0 0 0 Zp )
由于DI没有想法,你需要以某种方式保持比率,以便以相同的方式投射t,我明白你必须选择PP的Z坐标作为新COP的函数,但是我&# 39;我不知道从哪里开始。