【发布时间】:2014-07-31 08:58:27
【问题描述】:
我正在尝试从几对两个视点计算 3D 坐标。
首先,我使用matlab函数estimateFundamentalMatrix()得到匹配点的F(数字> 8),即:
F1 =[-0.000000221102386 0.000000127212463 -0.003908602702784
-0.000000703461004 -0.000000008125894 -0.010618266198273
0.003811584026121 0.012887141181108 0.999845683961494]
我的相机——拍了这两张照片——已经用内在矩阵进行了预校准:
K = [12636.6659110566, 0, 2541.60550098958
0, 12643.3249022486, 1952.06628069233
0, 0, 1]
然后我根据这些信息计算了基本矩阵:
E = K'*F*K
通过SVD的方法,我终于得到了射影变换矩阵:
P1 = K*[ I | 0 ]
和
P2 = K*[ R | t ]
R 和 t 分别是:
R = [ 0.657061402787646 -0.419110137500056 -0.626591577992727
-0.352566614260743 -0.905543541110692 0.235982367268031
-0.666308558758964 0.0658603659069099 -0.742761951588233]
t = [-0.940150699101422
0.320030970080146
0.117033504470591]
我知道应该有 4 种可能的解决方案,但是,我计算出的 3D 坐标似乎不正确。
我用相机拍摄了带有标记点的平面物体的照片。我手动匹配了点(这意味着原材料不应该存在明显的错误)。但结果证明是一个带有一点条纹的表面。
我想这可能是因为图片没有进行失真处理(但实际上我记得我做过)。
我只是想知道这个方法能不能解决3D重建问题对吗?尤其是当我们已经知道相机内在矩阵时。
8 月 4 日由 JCraft 编辑:我已经重做了这个过程并得到了一些显示问题的图片,我会写另一个详细的问题,然后发布链接。
JCraft 在 8 月 4 日编辑:我发布了一个新问题:Calibrated camera get matched points for 3D reconstruction, ideal test failed。 @Schorsch 非常感谢您帮助格式化我的问题。我将尝试学习如何在 SO 中进行输入,并尝试提高我的语法。谢谢!
【问题讨论】:
-
欢迎来到 SO,JCraft!您能否澄清一下,您的结果与预期输出有何不同?也许您可以上传示例数据(例如tinypic.com)并链接到它们?目前,您的问题的答案可能只是 yes - 这可能不是您所追求的。但是,不看原图和处理后的图,有点条带是很难理解的。
-
你好 Schorsch!感谢您的回复。是的,你是对的,很难想象问题是如何发生的。我将尝试重做该过程并上传一些图片。
标签: matlab computer-vision matlab-cvst 3d-reconstruction