Use-case:
给定已知(模拟)的3D场景,并且:
对应的2D点V,V'的2个矢量,其中V'表示3D点的投影,包括相对变换(使用5点算法提取) .
-
相机内在矩阵'K'
-
相对相机旋转矩阵'R'
-
相对摄像机翻译't'(最高比例)
计算三角形3D点位置(达到一定比例)实施:
-
对于每个摄像机,使用提取从摄像机和3D点投射出的光线
[RayV] = [Vx,Vy,0] * K.inv()
[RayV'] = [V'x,V'y,0] * K.inv() -
将相对旋转添加到[RayV'](影响光线方向)
[RayV'] = [RayV'] * [R] -
形成两条光线的3D线方程
L = [0,0,0] [RayV](第一条光线与原点0,0,0相交)
L'= [t] [RayV'](添加相对摄像机翻译) -
根据以下内容在空间中找到最小化两条光线之间距离的点:https://www.youtube.com/watch?v=HC5YikQxwZA
The Problem:
衍生的相机光线在Z坐标中偏离很多,而X,Y偏差最小,所得到的三角形点与其生成的场景不对应 .
What am I doing wrong here? Is the above Math correct? Is the Ray computation and Ray formula derivation correct?
1 回答
要从2D点创建齐次坐标,必须将光线计算中的0替换为1 .