OpenCV中基本矩阵的基本矩阵

Jua*_*niL 5 opencv computer-vision 3d-reconstruction camera-calibration

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

E = K.t() * F * K
Run Code Online (Sandbox Code Playgroud)

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

keb*_*ebs 12

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

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

    | \alpha_u     0     u_0 |
K = |    0      \alpha_u v_0 |
    |    0         0      1  |
Run Code Online (Sandbox Code Playgroud)

(对不起,SO不支持Latex)

编辑:要获取这些值,您可以:

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

计算E.

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

但如果你有这本书,所有这些都在里面.

编辑刚刚注意到,甚至还有关于这个主题的维基百科页面!