首页 > 代码库 > 相机标定 matlab opencv ROS三种方法标定步骤(1)

相机标定 matlab opencv ROS三种方法标定步骤(1)

 一 、理解摄像机模型,网上有很多讲解的十分详细,在这里我只是记录我的整合出来的资料和我的部分理解

     计算机视觉领域中常见的三个坐标系:图像坐标系,相机坐标系,世界坐标系,实际上就是要用矩阵来表示各个坐标系下的转换

   首先在图像坐标系下与相机坐标系的关系

                                               技术分享 

可得出   Xcam=x/dx+x0,    Ycam=y/dy+y0  表示为矩阵形式

    Xcam           1/dx   0      x0          x

    Ycam      =    0     1/dy   y0    *    y

       1               0     0        1           1

 相机坐标系与图像坐标系的关系是

 技术分享

 

既有技术分享可以写成  技术分享

我们知道相机坐标系与世界坐标系的关系是

技术分享表达成矩阵表示为

 

技术分享    可以推导出技术分享

 

 (这里面的Xc ,Yc,Zc 也就是上面的X Y Z )其中  

K= 技术分享就为相机的内参     R  T  为相机的外参(好难编辑)

接下来就是说明一下使用MATLAB  OPENCV ,以及ROS环境下的Opencv进行相机校准

            

 二、对于在matlab中进行相机标定是一件非常简单的事,因为在matlab官方网站,以及matlab中文论坛上都是有教程的,

                    matlab中文论坛的学习网址   http://www.ilovematlab.cn/thread-267670-1-1.html

                    详细相机标定过程请参考      http://www.mathworks.com/help/vi ... ator.html#btxr8c_-2

                    MATLAB相机标定教学视频   http://www.mathworks.com/videos/ ... h-matlab-81233.html

为了做出这个实验,我自己决定在matlab中操作一次。

1。  首先我们得准备软件matlab,安装matlab就按照网上的教程既可以安装成功了,不过安装过程可能遇到一些软件破解的一些问题,如果安装不上 那就果断的换安装的软件版本,

      其次就是准备标定魔板,我是直接用A3的纸打印了标准的棋盘方格,自己百度一下标定棋盘网上有很多图纸可供下载,

http://wiki.ros.org/camera_calibration/Tutorials/MonocularCalibration?action=AttachFile&do=view&target=check-108.pdf

我使用的就是108的那个,其中108代表的是每个小方格的边长为108mm,我们没必要做那么大,只需要下载下来自己无打印一下就好了,我打印的A3纸,后来测量一下边长为35mm,

                                                

材料和软件都准备好了,我们在准备摄像头,我们有单个选择:(1)手机拍照 我们就标定手机的摄像头,(2)笔记本自带的摄像头,(3)使用带USB的的摄像头

  那么第一种方法就比较简单了,我们用手机拍照(但是注意我们在使用手机拍照的时候,只要更换手机与标定模板的角度,和远近,尽量不要拍照的时候,把手机的摄像头相对地面的正方向变化)

 首先我们看一下我用手机拍摄的一组标定模板

 技术分享技术分享技术分享技术分享

这只是展示其中四张照片,当然拍下来的至少要20张不一样的照片,其实就可以开始使用MATLAB进行标定了,但是有时候我们不可能是为了标定手机的摄像头,这时候我们可能是标定USB的摄像头或者笔记本的摄像头,那就要使用一个软件了。

 网上下载Ecap软件就可以打开摄像头

技术分享

可以捕获很多不同角度的关于标定模板的图片,至少需要20张,紧接着打开matlab,在命令行输入

   >> cameraCalibrator

出现

技术分享

之后可以添加我们之间的所选定的照片,然后选择我的模板的方格大小,默认是25mm   我的是35mm

技术分享

添加完选择“”calibrate“”有

右边出现一下统计图,其中下面的额就是每个图片相对摄像头的远近和角度,点击保存calibration.mat文件,点击“Export camera parameters”出现

技术分享

 

相机标定 matlab opencv ROS三种方法标定步骤(1)