amo*_*uri 3 matlab opencv computer-vision camera-calibration
我已经获得了两台相机之间的基本矩阵.我也将其内部参数放在3 X 3我之前通过国际象棋棋盘获得的矩阵中.使用基本矩阵,我已经获得P1并P2通过
P1 = [I | 0] 和 P2 = [ [e']x * F | e']
这些投影矩阵在获取精确的3D位置方面并不真正有用.因为,我有内部参数K1和K2,我改变P1和P2作为
P1 = K1 * [I | 0] 和 P2 = K2 * [ [e']x * F | e']
Dam*_*ien 10
一本好的参考书是Hartley和Zisserman的"计算机视觉中的多视图几何".首先,你的P公式是错误的.如果你想要K里面的公式,那就更确切了
P = K * [R | t]
Run Code Online (Sandbox Code Playgroud)
要么
P = [ [e']x * F | e']
Run Code Online (Sandbox Code Playgroud)
但不是两者兼而有之.
如果您从8点算法计算F,那么您只能恢复投影几何直到3D单应性(即4x4变换).
要升级到欧几里德空间,有两种可能性,都是从计算基本矩阵开始.
第一种可能性是从F计算基本矩阵:E =转置(K2)*F*K1.
第二种可能性是直接估计这两种观点的基本矩阵:
一旦你有了基本矩阵,我们就可以计算出表格中的投影矩阵
P = K * [R | t]
Run Code Online (Sandbox Code Playgroud)
由于E的SVD元素,可以找到R和t(参见前面提到的书).但是,您将有4种可能性.其中只有一个项目指向两个摄像头前面,所以你应该测试一个点(如果你确定),以消除4中的模糊性.在这种情况下,你将能够放置相机及其方向(在3D场景中使用投影的R和t).
不是那么明显,的确......