在MATLAB中我计算了 基本矩阵 (使用标准化的两个图像) 八点算法。从那我需要 三角 3D空间中的相应图像点。根据我的理解,要做到这一点,我需要旋转和翻译图像的相机。最简单的方法当然是 校准相机 首先拍摄图像,但这对我的应用来说太紧张了,因为它需要这个额外的步骤。
所以这让我失望了 自动(自拍)相机校准。我看到提到了 捆绑调整但是在 邀请3D视觉 它似乎需要初始平移和旋转,这让我觉得需要校准相机或我的理解不足。
所以我的问题是如何自动提取旋转/平移,以便我可以将图像点重新投影/三角测量到3D空间。任何MATLAB代码或伪代码都会很棒。
您可以使用基本矩阵恢复相机矩阵并从图像中对3D点进行三角测量。但是,你必须意识到你将获得的重建将是一个投射重建,而不是欧几里德重建。如果你的目标是测量原始场景中的投影不变量,例如交叉比率,线交点等,这很有用,但它不足以测量角度和距离(你必须为此校准相机)。
如果您有权访问 哈特利和齐瑟曼的教科书,你可以查看9.5.3节,你会发现你需要从基本矩阵到一对相机矩阵,你可以计算一个投影重建(我相信相同的内容出现在Yi Ma的书第6.4节) )。自从 该书算法的源代码可在线获取,您可能需要检查函数vgg_P_from_F,vgg_X_from_xP_lin和vgg_X_from_xP_nonlin。
您可以使用基本矩阵恢复相机矩阵并从图像中对3D点进行三角测量。但是,你必须意识到你将获得的重建将是一个投射重建,而不是欧几里德重建。如果你的目标是测量原始场景中的投影不变量,例如交叉比率,线交点等,这很有用,但它不足以测量角度和距离(你必须为此校准相机)。
如果您有权访问 哈特利和齐瑟曼的教科书,你可以查看9.5.3节,你会发现你需要从基本矩阵到一对相机矩阵,你可以计算一个投影重建(我相信相同的内容出现在Yi Ma的书第6.4节) )。自从 该书算法的源代码可在线获取,您可能需要检查函数vgg_P_from_F,vgg_X_from_xP_lin和vgg_X_from_xP_nonlin。
如果您的3D空间可以任意选择,您可以将您的第一个相机矩阵设置为
P = [I | 0]
没有翻译,没有轮换。这将为您提供从摄像机1定义的坐标系。然后校准第二台摄像机应该不会太难。