您的位置:首页 > 编程语言 > MATLAB

旧日志整理三:MATLAB标定工具箱的使用(一)

2013-05-22 15:49 351 查看
前言:

2012年的暑假,由于私人原因我删掉了几乎所有的技术日志,近日有网友提出想看这方面的文章,我考虑了再三,将不会涉及机密的部分重新整理,图片已经找不到了,特此致歉。

说明

MATLAB 的相机标定工具箱 camera calibration toolbox 是由加州理工大学开发的,网上有相应的使用帮助文档。这里是我自己以前学习这个工具箱过程中总结的一些内容。

有些内容未必准确,请注意甄别。

Calib中相机内参数的确定

焦距

主点:照片的几何中心,相机主光轴与照片的交点(principal point)

偏斜系数

扭曲度



外参数

平移 (3*1平移向量)

旋转 (3*3旋转矩阵)

算法核心函数

go_calib_optim.m 标定,

输入:一组特征点在图像中的位置和网格坐标

输出:变换矩阵(相机内参数、外参数)

go_calib_optim_iter 计算相机内外参数的核心函数

输入:特征点在图像中的位置 及 相应的网格坐标

输出:相机内参数

相机变换矩阵(由世界坐标系坐标转换成相机坐标系坐标)

三维旋转和平移向量

analyse_error.m 分析偏差

compute_homography.m 单应矩阵计算

输入:照片平面的齐次坐标 三维平面上的齐次坐标

输出:单应矩阵(Homography ) 计算前的正交化矩阵

compute_extrinsic 计算外部参数

输入:相机的内部参数、一组特征点在图像中的位置和网格坐标

输出:相机外参数(旋转向量和平移向量)

project_points2

输入:相机的内外参数、以及一组点在世界坐标系的坐标

输出:这组点投影到照片的坐标

Rigid_motion 刚性运动变换

输入:世界坐标系与相机坐标系的刚性运动参数(旋转向量和平移向量),即相机外部参数

一组点在世界坐标系的三维坐标

输出:这组点在相机坐标系的坐标

rodrigues 旋转向量与旋转矩阵的转换

Calib中变量表示



相机坐标系(Oc,Xc,Yc,Zc) 相机坐标系中的向量 XXc = [Xc;Yc;Zc]

网格坐标系 (O,X,Y,Z) 网格坐标系中的向量 XX = [X;Y;Z]

这里的网格坐标系其实还不是世界坐标系,因为对于calib工具箱给的第一个实例来说,每张标定板的位置都是变化的。

网格坐标系

Calib的相机标定过程

Calib的相机标定原理,实际上是微软研究院的张正友提出的一种利用平面模板的标定方法,该方法只需从不同角度对模板拍摄几幅影像,通过对每幅影像的单应矩阵即可计算出相机内参数,并可以利用反投影法优化求精。

1、用户指定图库、手工指定网格的4个角

2、自动提取所有网格结点

3、由 一组特征点在图像中的位置和网格坐标 计算 变换矩阵(相机内参数、外参数)

4、偏差估计

5、计算结果可视化展现

在欧氏几何意义下,投影矩阵可以表示为摄像机内部参数与外部参数的乘积,其投影关系表示为:

投影矩阵

图象上点的位置与其在空间物体表面相应点的几何位置有关。两者的对应关系通过投影矩阵来度量



P1只与摄像机的内部结构有关,因此称为摄像机的内部参数矩阵,P2完全由摄像机相对于世界坐标系的位置和方向决定,称为摄像机的外部参数矩阵。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: