python3d图像处理_Python3 OpenCV3图像处理-照相机和三维结构的计算

本文探讨了三维视觉中的关键算法,包括利用三角剖分恢复图像点的三维位置,通过直接线性变换计算照相机矩阵,以及从基础矩阵恢复照相机矩阵的过程。在未标定和已标定情况下,分别讲述了投影重建和度量重建的方法,强调了在不同条件下重建的几何特性及其可能的畸变问题。
摘要由CSDN通过智能技术生成

照相机和三维结构的计算

1 三角剖分

给定照相机参数模型,图像点可以通过三角剖分来恢复出这些点的三维位置。基本 的算法思想如下。

对于两个照相机 P1 和 P2 的视图,三维实物点 X 的投影点为 x1 和 x2(这里用齐次坐 标表示),照相机方程(4.1)定义了下列关系:

由于图像噪声、照相机参数误差和其他系统误差,上面的方程可能没有精确解。我 们可以通过 SVD 算法来得到三维点的最小二乘估值。

算法估计出的三维图像点和实际图像点很接近。如下图所示,估计点和实际点可 以很好地匹配。

2 由三维点计算照相机矩阵

如果已经知道了一些三维点及其图像投影,我们可以使用直接线性变换的方法来计 算照相机矩阵 P。本质上,这是三角剖分方法的逆问题,有时我们将其称为照相机 反切法。利用该方法恢复照相机矩阵同样也是一个最小二乘问题。

我们从照相机方程(4.1)可以得出,每个三维点 Xi(齐次坐标系下)按照 λixi =PXi 投影到图像点 xi=[xi, yi,1],相应的点满足下面的关系

其中 p1、p2 和 p3 是矩阵 P 的三行。上面的式子可以写得更紧凑,如下所示: Mv=0

然后,我们可以使用 SVD 分解估计出照相机矩阵。

3 由基础矩阵计算照相机矩阵

在两个视图的场景中,照相机矩阵可以由基础矩阵恢复出来。假设第一个照相机矩阵归一化为 P1=[I|0],现在我们需要计算出第二个照相机矩阵 P2。研究分为两类, 未标定的情况和已标定的情况。

1. 未标定的情况——投影重建 在没有任何照相机内参数知识的情况下,照相机矩阵只能通过射影变换恢复出来。 也就是说,如果利用照相机的信息来重建三维点,那么该重建只能由射影变换计算 出来(你可以得到整个投影场景中无畸变的重建点)。在这里,我们不考虑角度和距 离。

因此,在无标定的情况下,第二个照相机矩阵可以使用一个(3×3)的射影变换得 出。一个简单的方法是:P2=[SeF|e]

其中,e 是左极点,满足 eTF=0,Se 是如公式(5.2)所示的反对称矩阵。请注意, 使用该矩阵做出的三角形剖分很有可能会发生畸变,如倾斜的重建。

2. 已标定的情况——度量重建 在已经标定的情况下,重建会保持欧式空间中的一些度量特性(除了全局的尺度参 数)。在重建三维场景中,已标定的例子更为有趣。

给定标定矩阵 K,我们可以将它的逆 K-1 作用于图像点 xK=K-1x,因此,在新的图像 坐标系下,照相机方程变为:

在标定归一化的坐标系下,基础矩阵称为本质矩阵。为了区别为标定后的情况,以 及归一化了的图像坐标,我们通常将其记为 E,而非 F。

从本质矩阵恢复出的照相机矩阵中存在度量关系,但有四个可能解。因为只有一个 解产生位于两个照相机前的场景,所以我们可以轻松地从中选出来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值