如果我们知道相机矩阵,则转换使用iPhone或Android相机捕获的2D图像可以转换为3D点 Cloud . 我对如何计算一些其他参数的参数有一定的了解,但我需要你的帮助来填补我所知的空间 .
给定世界坐标(W),相应的图像坐标(X)和相机内在矩阵(K) . 任务是将3D点 Cloud 投射到世界中 .
-
使用X和W估算Homography(H)
-
使用K和H估算extrinsics矩阵(E)
-
使用K和E计算相机矩阵 .
-
Project 3D使用相机矩阵指向图像 .
所以,如果我知道至少4个3D点及其相应的像素位置,如果我已经知道相机内在函数,那么我可以计算所有上述内容 .
但如果我不了解相机内在函数,我该如何计算呢?我怎样才能获得至少4个世界和图像坐标的对应关系?有没有比我建议的方式更容易获得相机矩阵?
我不是在线寻找相机校准示例,但我想从头开始编写代码 . 对此有任何帮助非常感谢!
1 回答
可以使用camera calibration(Theory of Bouguet’s MatLab Camera Calibration Toolbox)估算内部参数 .
可以使用3D pose estimation / PnP问题估算外部参数 .
点对应可以通过features matching,标记/棋盘角点检测获得 .
PS:关于你的断言,我认为:
Homography不应该处理3D坐标(已知深度) .
您应该能够在某些假设(平面假设)下使用单应性和先前的相机姿势计算当前相机姿势,但这不是通常的程序 .
E
通常代表Essential matrix,而不是外在矩阵 .