OpenCV中基本矩阵的本质矩阵
我已经通过使用SURF找到的对应点计算了立体对的基本矩阵。根据Hartley和Zisserman的说法,基本矩阵的计算方法如下:OpenCV中基本矩阵的本质矩阵,opencv,computer-vision,camera-calibration,3d-reconstruction,Opencv,Computer Vision,Camera Calibration,3d Reconstruction,我已经通过使用SURF找到的对应点计算了立体对的基本矩阵。根据Hartley和Zisserman的说法,基本矩阵的计算方法如下: E = K.t() * F * K 我是怎么得到K的?还有其他方法计算E吗?我不知道你从哪里得到的公式,但正确的方法是 E=K'^T。FK(见Hartley&Zisserman第二版第257页第9.6节) K是相机的固有参数,包含图像中心的比例因子和位置,以像素单位表示 | \alpha_u 0 u_0 | K = | 0 \
E = K.t() * F * K
我是怎么得到K的?还有其他方法计算E吗?我不知道你从哪里得到的公式,但正确的方法是
E=K'^T。FK
(见Hartley&Zisserman第二版第257页第9.6节)
K
是相机的固有参数,包含图像中心的比例因子和位置,以像素单位表示
| \alpha_u 0 u_0 |
K = | 0 \alpha_u v_0 |
| 0 0 1 |
(很抱歉,SO上不支持Latex)
编辑:要获取这些值,您可以:
- 校准照相机
- 如果有制造商数据,请计算近似值。如果镜头在传感器上正确居中,则u_0和v_0分别是图像分辨率宽度和高度的一半。和
,其中f为焦距(m),k为像素比例因子:如果像素为6 um,则alpha=k.f
。 例如,如果镜头为8mm,像素大小为8um,则k=1/6um
alpha=1000
编辑刚刚注意到,关于这个话题甚至还有一个新的话题 对不起,我没有提到立体图像是用同一台相机拍摄的,所以K'=K,对于t(),我指的是用于转置矩阵的OpenCV函数。所以,我现在的问题是:如何从图像中获取K(我事先不知道)?