从 2 张图像的单应性中找到平面法线?
Finding a plane normal from homography of 2 images?
我有 2 张从平面的不同角度和位置拍摄的图像。我找到了 4 个匹配点并计算了单应性矩阵 H。这张图片显示了使用它的变换,所以它非常有效
我现在想求这个平面的法线。在书 3-D Vision 的邀请 里面说你可以把它分解成
其中 N 是平面的法线。我已经这样做了,结果我得到了一个解决方案
N = [-0.00514723, 0.00503588, 0.99997407]
对于其他示例,此法线也几乎在 Z 方向上指向海峡...这可能是什么原因造成的??
P.S。我还检查了颠倒上面的等式再次给了我 H 并且它确实如此,所以有有效的解决方案但是飞机显然远离海峡
这个公式是正确的。我怀疑您正在尝试在不使用相机内部校准(这是必需的)的情况下应用它。你有相机内部校准吗?如果是这样,您应该首先将对应关系转换为 'normalized pixel coordinates'(在 OpenCV 中,您使用 undistortpoints 执行此操作),然后计算这些归一化点之间的单应性,然后使用公式进行分解。
我有 2 张从平面的不同角度和位置拍摄的图像。我找到了 4 个匹配点并计算了单应性矩阵 H。这张图片显示了使用它的变换,所以它非常有效
我现在想求这个平面的法线。在书 3-D Vision 的邀请 里面说你可以把它分解成
其中 N 是平面的法线。我已经这样做了,结果我得到了一个解决方案
N = [-0.00514723, 0.00503588, 0.99997407]
对于其他示例,此法线也几乎在 Z 方向上指向海峡...这可能是什么原因造成的??
P.S。我还检查了颠倒上面的等式再次给了我 H 并且它确实如此,所以有有效的解决方案但是飞机显然远离海峡
这个公式是正确的。我怀疑您正在尝试在不使用相机内部校准(这是必需的)的情况下应用它。你有相机内部校准吗?如果是这样,您应该首先将对应关系转换为 'normalized pixel coordinates'(在 OpenCV 中,您使用 undistortpoints 执行此操作),然后计算这些归一化点之间的单应性,然后使用公式进行分解。