OpenCV中基本矩阵的基本矩阵

时间:2014-05-29 21:50:09

标签: opencv computer-vision camera-calibration 3d-reconstruction

我已经通过使用SURF找到的相应点计算了立体对的基本矩阵。根据Hartley和Zisserman的说法,Essential Matrix计算如下:

E = K.t() * F * K

我如何得到K?还有另一种计算E的方法吗?

1 个答案:

答案 0 :(得分:12)

我不知道你在哪里得到那些公式,但正确的是 E = K'^T . F . K(见Hartley& Zisserman,§9.6,第二版第257页)

K是固有的相机参数,包含图像中心的比例因子和位置,以像素为单位表示。

    | \alpha_u     0     u_0 |
K = |    0      \alpha_u v_0 |
    |    0         0      1  |

(对不起,SO不支持Latex)

修改:要获取这些值,您可以:

  • 校准相机
  • 如果您有制造商数据,
  • 计算近似值。如果镜头在传感器上正确居中,则u_0和v_0分别是图像分辨率的宽度和高度的一半。并且alpha = k.f使用f:焦距(m。),k为像素比例因子:如果您的像素为6 um,则为k=1/6um。 例如,如果镜头为8mm,像素大小为8um,则为alpha=1000

计算E

当然,有几种计算E的方法,例如,如果您对相机装置进行了强校准,那么您可以在两个相机之间提取R和t(旋转矩阵和平移向量),E是定义为斜对称矩阵t和矩阵R的乘积。

但如果你有这本书,那么所有这些都在里面。

修改注意,此主题甚至有Wikipedia page