利用matlab摄像机标定

(1)输入图像

“Image names”键

Matlab的图形窗口显示出20幅靶标图像

(2) 提取角点

“Extract grid corners”键。

输入要进行角点提取的靶标图像的编号并回车

分别在“wintx ([] = 5) =”和“winty ([] = 5) =”输入行中输入角点提取区域的窗口半宽m和半高n。显示角点提取区域的窗口尺寸(2n+1)x(2m+1),例如,选择缺省时角点提取区域的窗口尺寸为11x11像素。

Extraction of the grid corners on the images

Number(s) of image(s) to process ([] = all images) = 17

Window size for corner finder (wintx and winty):

wintx ([] = 5) = 5

winty ([] = 5) = 5

Window size = 11x11

Do you want to use the automatic square counting mechanism (0=[]=default)

or do you always want to enter the number of squares manually (1,other)? 0

//0表示自动计算棋盘格靶标选定区域内的方格行数和列数,选择值1表示人工计算并输入棋盘格靶标选定区域内的方格行数和列数。

Processing image 17...

Using (wintx,winty)=(5,5) - Window size = 11x11      (Note: To reset the window size, run script clearwin)

Click on the four extreme corners of the rectangular complete pattern (the first clicked corner is the origin)...//点击四个极端的角落的矩形完整的模式(第一个点击的角落是原点)…

Size of each square along the X direction: dX=100mm//沿X方向每平方大小:DX = 100mm

Size of each square along the Y direction: dY=100mm   (Note: To reset the size of the squares, clear the variables dX and dY)

If the guessed grid corners (red crosses on the image) are not close to the actual corners,

it is necessary to enter an initial guess for the radial distortion factor kc (useful for subpixel detection)//如果猜到的网格角(图像上的红色的十字架)不接近实际的角落,需要输入径向畸变系数Kc的初始猜测(用于亚像素检测)

Need of an initial guess for distortion? ([]=no, other=yes) []

需要一个初始猜测的失真?(=不,其他=是)

Corner extraction...角点提取…

done完成

(3) 内参数标定

“Calibration”键

一、摄像机模型:

f是摄像机焦距。针孔中的点被理解成投影中心。光轴与图像平面的交点被称为主点。

你也许认为主点即成像仪的中心,但这意味着需要极其精度的安装,实际上,通常中心不在光轴上。因此引入了两个新的参数Cx和Cy,对偏移进行建模;由于单个像素点在低价成像仪上是矩形而不是正方形,引入两个不同的焦距fx和fy(单位为像素),焦距fx实际上是透镜的物理焦距长度与成像仪每个单元尺寸Sx的乘积,fy同理。

1.x=fx(X/Z)+Cx  ; y=fy(Y/Z)+Cy 【图像点(x,y);物理点(X,Y,Z)】

2.q=QM     ;    ;

二、内参数标定给出初始化后的标定结果和优化后的标定结果。其中,对内参数的优化采用L-M梯度下降法。优化后的结果中给出的参数不确定性,是3倍的标准方差。

fc中的两个数据分别是kxky,即焦距归一化成像平面上的成像点坐标到图像坐标的放大系数。

cc为光轴中心点的图像坐标(u0, v0),又称为主点坐标(光轴和像平面的交点),单位:像素。

alpha_c是对应于图像坐标v的摄像机的实际y轴与理想y轴之间的夹角ac,单位为弧度,默认值为0弧度。后续给出的图像轴之间的夹角为对应于图像坐标uv的摄像机的xy轴之间的夹角,默认值为90°。

est_alpha是alpha_c是否标定的标志位,只有est_alpha=1时对alpha_c进行标定。

kc为畸变系数kc1~kc5,kc(1)为二阶径向畸变系数kc1,kc(2)为4阶径向畸变系数kc2,kc(5)为6阶径向畸变系数kc5,kc(3)为图像坐标u对应于xy项的切向畸变系数kc3,kc(4)为图像坐标v对应于xy项的切向畸变系数kc4

err为将网格角点反投影到图像空间的误差的标准方差,单位为像素。

在优化后的结果中,不确定性的数值越小,说明标定的精度越高。如果不确定性项的数值与结果值相比所占比例较大,则需要重新标定。

初始化后的标定结果:

Calibration parameters after initialization:

Focal Length:          fc = [ 2261.90405   2109.71287 ]

Principal point:       cc = [ 319.50000   239.50000 ]

Skew:             alpha_c = [ 0.00000 ]   => angle of pixel = 90.00000 degrees

Distortion:            kc = [ 0.00000   0.00000   0.00000   0.00000   0.00000 ]

优化后的标定结果:

17

Calibration results after optimization (with uncertainties):

Focal Length:          fc = [ 1449.63020   1465.98311 ] +/- [ 400.52656   411.89609 ]

Principal point:       cc = [ 319.50000   239.50000 ] +/- [ 0.00000   0.00000 ]

Skew:   alpha_c = [ 0.00000 ] +/- [ 0.00000  ]  => angle of pixel axes = 90.00000 +/- 0.00000 degrees

Distortion:            kc = [ -0.73547   8.76011   -0.03983   -0.03329  0.00000 ] +/- [ 0.64286   18.37382   0.02206   0.00821  0.00000 ]

Pixel error:          err = [ 0.39436   0.41117 ]

16

Calibration results after optimization (with uncertainties):

Focal Length:          fc = [ 1057.47799   1065.08661 ] +/- [ 179.00243   182.45017 ]

Principal point:       cc = [ 319.50000   239.50000 ] +/- [ 0.00000   0.00000 ]

Skew:             alpha_c = [ 0.00000 ] +/- [ 0.00000  ]   => angle of pixel axes = 90.00000 +/- 0.00000 degrees

Distortion:            kc = [ -0.42145   2.71172   -0.02680   -0.02733  0.00000 ] +/- [ 0.27931   4.47689   0.01235   0.00609  0.00000 ]

Pixel error:          err = [ 0.39060   0.46655 ]

4

Calibration results after optimization (with uncertainties):

Focal Length:          fc = [ 981.15486   990.80729 ] +/- [ 83.68588   85.72653 ]

Principal point:       cc = [ 319.50000   239.50000 ] +/- [ 0.00000   0.00000 ]

Skew:             alpha_c = [ 0.00000 ] +/- [ 0.00000  ]   => angle of pixel axes = 90.00000 +/- 0.00000 degrees

Distortion:            kc = [ -0.31958   1.45735   -0.01584   -0.02388  0.00000 ] +/- [ 0.23908   3.49317   0.00665   0.00536  0.00000 ]

Pixel error:          err = [ 0.52427   0.49251 ]

   (4) 显示摄像机与标定靶标之间的关系

“Show Extrinsic”键

假设摄像机固定时摄像机与靶标之间的关系.

假设靶标固定时摄像机与靶标之间的关系

(5) 误差分析

“Analyse error”键

利用鼠标移动十字标尺可以选择角点,即可在命令窗口显示出该角点的信息,包括该角点所属图像、索引号、以方格为单位的坐标、图像坐标、反投影后的图像坐标误差、角点提取区域的窗口半宽m和半高n

Selected image: 17

Selected point index: 22 //选择点指数:22

Pattern coordinates (in units of (dX,dY)): (X,Y)=(0,3)//图形坐标(单位(dx,dy))

Image coordinates (in pixel): (326.27,97.25)//图像坐标(像素)

Pixel error = (0.39891,0.38640)//像素误差

Window size: (wintx,winty) = (5,5)

(6) 反投影到图像空间

“Project on image”键

出现“Number(s) of image(s) to process ([] = all images) =”时,输入要进行反投影的靶标图像的编号并回车:

Number(s) of image(s) to show ([] = all images) = 17

Pixel error:      err = [0.52427   0.49251] (all active images)

(7) 图像畸变校正

“Undistort image”键

Program that undistorts images

The intrinsic camera parameters are assumed to be known (previously computed)

Do you want to undistort all the calibration images ([],0) or a new image (1)? 1

内在的相机参数被假定为已知(先前计算)

你想所有的校正图像失真([ ],0)或一个新的图像(1)?

(8) 外参数标定

“Comp. Extrinsic”键

外参数包括:旋转矩阵;平移向量,来描述物体的相对位置

外参数标定是在内参数已知的前提下进行的。在完成摄像机的内参数标定后,或者在命令窗口输入摄像机的内参数后,可以对棋盘格靶标相对于摄像机的外参数进行标定。

Computation of the extrinsic parameters from an image of a pattern

The intrinsic camera parameters are assumed to be known (previously computed)

Image name (full name without extension): image17

Image format: ([]=‘r‘=‘ras‘, ‘b‘=‘bmp‘, ‘t‘=‘tif‘, ‘p‘=‘pgm‘, ‘j‘=‘jpg‘, ‘m‘=‘ppm‘) j

Extraction of the grid corners on the image

Window size for corner finder (wintx and winty):

wintx ([] = 5) =

winty ([] = 5) =

Window size = 11x11

Click on the four extreme corners of the rectangular complete pattern (the first clicked corner is the origin)...

Size dX of each square along the X direction ([]=30mm) = 100

Size dY of each square along the Y direction ([]=30mm) = 100

Corner extraction...

Extrinsic parameters:

Translation vector: Tc_ext = [ -286.312743  -270.910076  2017.432436 ]

Rotation vector:   omc_ext = [ -2.148529  -2.100271  -0.134644 ]  旋转矢量

Rotation matrix:    Rc_ext = [ 0.025055  0.999247  -0.029640

旋转矩阵                       0.987282  -0.020077  0.157706

0.156992  -0.033214  -0.987041 ]

Pixel error:           err = [ 0.34478  0.42945 ]

在外参数标定结果中,Tc_ext为靶标坐标系原点在摄像机坐标系中的位移向量,单位为mm;omc_ext为对应于姿态矩阵的rodrigues旋转向量;Rc_ext为旋转矩阵;err为将网格角点反投影到图像空间的误差的标准方差,单位为像素。

时间: 2024-12-14 09:09:37

利用matlab摄像机标定的相关文章

Matlab 摄像机标定+畸变校正

博客转载自:http://blog.csdn.net/Loser__Wang/article/details/51811347 本文目的在于记录如何使用MATLAB做摄像机标定,并通过opencv进行校正后的显示. 首先关于校正的基本知识通过OpenCV官网的介绍即可简单了解: http://docs.opencv.org/2.4/doc/tutorials/calib3d/camera_calibration/camera_calibration.html 对于摄像机我们所关心的主要参数为摄像

相机标定简介与MatLab相机标定工具箱的使用(未涉及原理公式推导)

相机标定 一.相机标定的目的 确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,建立摄像机成像的几何模型,这些几何模型参数就是摄像机参数. 二.通用摄像机模型 世界坐标系.摄像机坐标系和像平面坐标系都不重合.同时考虑两个因素 : (1)摄像机镜头的畸变误差,像平面上的成像位置与线性变换公式计算的透视变换投影结果有偏差: (2)计算机中图像坐标单位是存储器中离散像素的个数,所以像平面上的连续坐标还需取整转换. 摄像机参数 l  摄像机内部参数 (Intrinsic Paramet

摄像机标定【转】

1.摄像机外参:决定摄像机坐标与世界坐标系之间相对位置关系. 其中Pw为世界坐标,Pc是摄像机坐标,他们之间关系为 Pc = RPw + T 式中,T= (Tx,Ty,Tz),是平移向量,R = R(α,β,γ)是旋转矩阵,分别是绕摄像机坐标系z轴旋转角度为γ,绕y轴旋转角度为β,绕x轴旋转角度为α.6个参数组成(α,β,γ,Tx,Ty,Tz)为摄像机外参. 2.摄像机内参:确定摄像机从三维空间到二维图像的投影关系. zhenkong摄像机模型为6个参数(f,κ,Sx,Sy,Cx,Cy):远心摄

利用MATLAB生成模式类

最近开始了模式识别的学习,在此之前需要对模式和模式类的概念有一个了解,这里使用MATLAB实现一些模式类的生成.在此之前,引用百科上对于模式识别和模式类的定义,也算加深以下了解: 模式识别(Pattern Recognition):人类在日常生活的每个环节,从事着模式识别的活动.可以说每个有正常思维的人,在他没有入睡时都在进行模式识别的活动.坐公共汽车找汽车站,骑车判别可行进道路,对观察到的现象作出判断,对听到的声音作出反应,判断东西的好与坏以及水果的成熟与否等等都是人们判断是非,判别事物的过程

摄像机标定

转自:http://blog.sina.com.cn/s/blog_b5aa3e0f0101a4tx.html 1.摄像机外参:决定摄像机坐标与世界坐标系之间相对位置关系. 其中Pw为世界坐标,Pc是摄像机坐标,他们之间关系为 Pc = RPw + T 式中,T= (Tx,Ty,Tz),是平移向量,R = R(α,β,γ)是旋转矩阵,分别是绕摄像机坐标系z轴旋转角度为γ,绕y轴旋转角度为β,绕x轴旋转角度为α.6个参数组成(α,β,γ,Tx,Ty,Tz)为摄像机外参. 2.摄像机内参:确定摄像机

C#下的摄像机标定

前言:计算机视觉的基本任务之一是从摄像机获取的图像信息出发计算三维空间中物体的几何信息,并由此重建和识别物体,而空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系是由摄像机成像的几何模型决定的,这些几何模型参数就是摄像机参数.在大多数条件下,这些参数必须通过实验与计算才能得到,这个过程称为摄像机标定.标定过程就是确定摄像机的几何和光学参数.摄像机相对于世界坐标系的方位. 内容: 1.假设摄像机所拍摄到的图像与三维空间中的物体之间存在以下一种简单的线性关系:[像]=M[物],这里,矩阵

模式识别:利用MATLAB生成模式类

近期開始了模式识别的学习,在此之前须要对模式和模式类的概念有一个了解,这里使用MATLAB实现一些模式类的生成.在此之前,引用百科上对于模式识别和模式类的定义.也算加深以下了解: 模式识别(Pattern Recognition):人类在日常生活的每一个环节,从事着模式识别的活动. 能够说每一个有正常思维的人,在他没有入睡时都在进行模式识别的活动. 坐公共汽车找汽车站,骑车判别可行进道路.对观察到的现象作出推断.对听到的声音作出反应,推断东西的好与坏以及水果的成熟与否等等都是人们推断是非,判别事

摄像机标定01

针孔摄像机模型.针孔是一堵想象中的墙(中心有一个微型小孔).光线只能从这个开口中通过,而其余的都被墙所阻挡.下面我们将从一个针孔摄像机模型开始,处理基本几何中的投影射线.遗憾的是,真实的针孔由于不能快速曝光收集足够的光线,因此他不是一个得到图像的好方法.这也是为什么眼睛和摄像机都要使用透镜而不是仅仅只用一个点来收集更多光线的原因.然而,这种利用透镜得到更多光线的缺点是,不仅使我们背离了所使用的简单针孔几何模型,而且引入来自透镜的畸变. 本文将学习如何利用摄像机标定,来矫正(数学方式)因使用透镜而

摄像机标定--矫正畸变

之前做过摄像机标定的研究,不过现在忘了好多,昨天下午又捡起来,好好复习一下(主要是学习opencv一书内容). 摄像机标定基本知识: 摄像机标定误差包括内参(4个).畸变参数(径向和切向共5个).外参(平移和旋转共6个). 误差参数分析:摄像机模型采用针孔模型成像模型,由于中心轴安装问题,这就造成了精度误差,就是所谓的相机内参数误差,使用一个3X3的矩阵表示(A) [fx 0 cx; 0 fy cy; 0 0 1].,有四个未知参数:另由于针孔成像采光效率不高,使用了透镜,这就造成的畸变误差: