P=[x,y,z,w]^t = world point (homog. 4-vector)
p1=[x1,y1,w1]^t = point on screen 1; M1= 3x4 projection matrix 1: p1=M1*P
p2=[x2,y2,w2]^t = point on screen 2; M2= 3x4 projection matrix 2: p2=M2*P
您已知的数据为:p1/w1=(u1,v1,1) 和 p2/w2=(u2,v2,1);将它们分别乘以变量 w1 和 w2,得到:
(u1,v1) are constant -> p1=[u1*w1,v1*w1,w1]^t
(u2,v2) are constant -> p2=[u2*w2,v2*w2,w2]^t
assume that w=1 -> P=[x,y,z,1]^t
你是否具备基本的线性代数知识?如果是,那么这很容易。
1)你需要两个投影矩阵的投影矩阵(称为P1和P2,它们是3x2矩阵) 2)你有方程式:t(x1,y1)= P1 t(x,y,z)和t(x2,y2)= P2 t(x,y,z)(其中t是向量的转置) 3)你得到一个由3个未知数和4个方程组成的系统
也许你不知道投影矩阵,那么你首先要找出它们。
你很可能可以想出更高级的东西(只需一个3乘4的矩阵,其左侧应该有一个伪逆)。
如果你对线性代数一无所知,那么...请问我,我会详细解释。
附注:如果数学内容用的英语不好,请见谅。
http://www.sci.utah.edu/~acoste/uou/Image/project3/ArthurCOSTE_Project3.pdf https://www.cse.unr.edu/~bebis/CS485/Lectures/GeometricTransformations.ppt