2007-03-09 19:03:27 作者:春秋视讯技术有限责任公司 朱 瑞 来源:互联网
摘要:介绍机器视觉软件 Sherlock 如何对将相机像素坐标系转换成实际测量或检测所需要
的坐标系,以及利用标定来修正相机 CCD 平面与物体测量平面不平行引起的畸变。
关键词:标定(calibrate) 校正 放射性失真 畸变 虚拟相机
在应用机器视觉进行检测或测量时,要得到精确的测量值,需要相机CCD 平面和实际检测
或测量零件的表面相平行。否则,将发生透视性失真,从而很难保证精度。相机CCD 与零
件表面的平行通常通过人工调整夹具来保证。但是,调整夹具不可能完全保证平行,而且需
要耗费很长的时间。 相机所拍摄图像的坐标系并不是用户实际需要的坐标系,因此需要将
坐标系转换成用户需要的坐标系。 机器视觉软件 Sherlock 利用标定很容易修正仿射性失真
引起的畸变,并可方便的进行坐标变换。 1 相机标定工作原理 相机标定就是将相机像素坐
标系转换成用户实际测量或检测所需要的坐标系,使虚拟摄像机以真实单位进行精密测量。
Sherlock 的相机标定利用了透视算法进行标定。每一次失真的类型都不一定相同,透视校
正算法将对仿射变换和线性透视畸变进行补偿,特别是当摄像机平面和物体平面不平行的时
候,图像中物体的直线仍然是直的,但是平行线不再平行(如图 1,透视失真),标定将补
偿仿射变换和少量的非线性畸变。 Sherlock 的相机标定方法是在一个虚拟相机中利用四点
坐标系函数来建立四点的位置。这样,根据相机中的四个点的位置同实际坐标的关系,
Sherlock 可以通过内部数学转换进行坐标变换,来校正仿射性失真或由于比例、偏移和旋转
(倾斜)引起的变化。 当摄像机传感器平面和物体平面之间存在一个角度时,透视畸变就
会 发 生 。 此 时 棋 盘 上 的 正 方 形 看 起 来 像 梯 形 。 透 视 畸 变 的 数 学 公 式 如 下 :
u=(ax+by+c)/(hx+hy+I), υ=(dx+ey+?)/(gx+hy+i)(x,y)是摄像机或物体平面上的坐标,(u,v)
是另一个平面上的转换坐标。A,b,c,d,e,f,g,h 和 I 是透视畸变算法从内部取出用于转换每个要
求点的转换参数。 2 相机标定的步骤 图 2 是标定主页图。相机标定的一般步骤如下:(1)
建立一个子程序(Insert | Subroutine)。(2)在策略窗口树的顶部双击子程序图标,Sherlock
显示子程序编辑对话框。 (3)编辑子程序,选取“Execute During Calibration”点击OK 按