3D基本矩阵的对应关系

时间:2010-02-03 01:38:45

标签: matlab math computer-vision linear-algebra matlab-cvst

在MATLAB中,我使用标准化Fundamental matrix计算了Eight point algorithm(两个图像)。由此我需要triangulate 3D空间中的相应图像点。根据我的理解,要做到这一点,我需要旋转和翻译图像的相机。最简单的方法当然是calibrate the cameras然后拍摄图像,但这对我的应用来说太紧张了,因为它需要这个额外的步骤。

这样我就留下了auto (self) camera calibration。我看到bundle adjustment的提及,但是在An Invitation to 3D Vision中它似乎需要初始平移和旋转,这让我觉得需要校准相机或我的理解不足。

所以我的问题是如何自动提取旋转/平移,以便我可以将图像点重新投影/三角测量到3D空间。任何MATLAB代码或伪代码都会很棒。

3 个答案:

答案 0 :(得分:8)

您可以使用基本矩阵恢复相机矩阵并从图像中对3D点进行三角测量。但是,你必须意识到你将获得的重建将是一个投射重建,而不是欧几里德重建。如果你的目标是测量原始场景中的投影不变量,例如交叉比率,线交点等,这很有用,但它不足以测量角度和距离(你必须为此校准相机)。

如果您可以访问Hartley and Zisserman's textbook,则可以查看第9.5.3节,您可以在其中找到从基本矩阵到一对相机矩阵的内容,这些矩阵将允许您计算投影重建(我相信同样的内容出现在“易马”一书的第6.4节中。从source code for the book's algorithms is available online开始,您可能需要检查函数vgg_P_from_F,vgg_X_from_xP​​_lin和vgg_X_from_xP​​_nonlin。

答案 1 :(得分:5)

彼得的matlab代码对我很有帮助我认为:

http://www.csse.uwa.edu.au/~pk/research/matlabfns/

彼得发布了许多基本矩阵解决方案。 zisserman书中提到了原始算法

http://www.amazon.com/exec/obidos/tg/detail/-/0521540518/qid=1126195435/sr=8-1/ref=pd_bbs_1/103-8055115-0657421?v=glance&s=books&n=507846

此外,当你在场的时候别忘了看基本的矩阵歌曲:

http://danielwedge.com/fmatrix/

我的诚实意见中的一个优秀作品!

答案 2 :(得分:1)

如果可以任意选择3D空间,可以将第一个相机矩阵设置为

P = [I | 0]

没有翻译,没有轮换。那将为您提供从相机1定义的坐标系。那么校准第二台相机应该不会太难。

相关问题