当前位置:
文档之家› 第11章 HALCON标定方法
第11章 HALCON标定方法
之间的差值。
HALCON编程基础与工程应用
相机坐标系到图像坐标系
从相机坐标系到图像坐标系属于透视投影变换关系,即将3D图像信 息转换成2D图像信息。其中点P是相机坐标系中的点,点p(x,y)是像 极坐标系中的点P在图像坐标系上的投影点。
ABOC ~ oCOC
AB AOC PB XC ZC YC oC oOC pC x f y
R(
)
0
1
0
sin 0 cos
cos sin 0
R( ) sin cos 0
0
0 1
总的旋转矩阵,也就是三者的乘积。
R(, , ) R()R( )R( )
平移矩阵T (tx,ty ,tz ) ,tx、ty、tz 是世界坐标系原点与相机坐标系目标点
第11章 HALCON标定方法
◆ 11.1 标定的目的 ◆ 11.2 标定理论 ◆ 11.3 HALCON标定流程 ◆ 11.4 HALCON标定助手 ◆ 11.5 标定应用例程之二维测量
HALCON编程基础与工程应用
11.1 标定的目的
相机需要标定的原因之一就是镜头畸变。所有光学相机镜头都存 在畸变的问题,畸变属于成像的几何失真,它是由于焦平面上不同 区域对影像的放大率不同而形成的画面扭曲变形现象,这种变形的 程度从画面中心至画面边缘依次递增,主要在画面边缘反映的较为 明显。所以相机标定就是为了消除相机镜头在拍摄过程中产生的畸 变。和梯 形畸变。
HALCON编程基础与工程应用
11.3 HALCON标定流程 相机参数确定 HALCON标定板规格 生成标定板
HALCON编程基础与工程应用
1、相机参数确定
相机分两种,一种是面扫描相机,也称面阵相机(Area Scan Camera),一 种是线扫描相机,也称线阵相机(Line Scan Camera)。准确来说,所谓的面扫 描摄像系统是指可以通过单纯曝光取得面积影像,而线扫描摄像系统,必须保证 相机和目标是相对运动的,然后利用相对运动速度才能取得影像。
HALCON编程基础与工程应用
成像平面上的投影点(点q)的变化过程
上图是将相机平面移至针孔与目标物体之间后的模型示意图,描述 的是在这个移动过程中,成像平面上的投影点(点q)的变化情况。
根据空间一点成像到图像平面上的路线,先由世界坐标系变换到相机 坐标系,然后又由相机坐标系变换到成像坐标系,但是这个过程有畸变, 需要进行变换处理,再由成像平面坐标系变换到图像像素坐标系,中间 大致分为以下几个步骤:
X
f
Yf
Xd dx
Cx
Yd dy
Cy
图像像素坐标系的转化关系
HALCON编程基础与工程应用
2、标定的内外参数
外部参数:由前面可知,相机的外部参数是用来描述相机坐标系与世 界坐标系的关系,它表明相机在世界坐标系中的位置和方位,可用旋 转矩阵和平移向量来表示。实质上旋转矩阵只有三个独立参数,加上 平移向量的三个参数,故一共有6个独立的外部参数。
gen_caltab生成。
HALCON编程基础与工程应用
(3)find_caltab,找到标定板的位置。 (4)find_marks_and_pose,输出标定点的位置和外参startpose。 (5)camera_calibration,输出内参和所有外部参数。
HALCON编程基础与工程应用
2、HALCON标定板规格
HALCON编程基础与工程应用
图像成像坐标系到图像像素坐标系
图像像素坐标系u-v是以图像左上角为原点,以图像互为直角的两个边 缘为坐标轴,满足右手准则而建立的。图像由一个个小的像素点组成,图 像像素坐标系的横纵坐标正是以像素点为单位,用来描述图像中每一个像 素点在图像中的位置。图像成像坐标系以光轴与像平面交点为原点建立, 图像成像坐标系的两个坐标轴分别与图像像素坐标系的坐标轴平行,并且 方向相同,如图所示,图像成像坐标系是以毫米为单位的直角坐标系 X-Y。 用(Xf ,Yf)来描述图像像素坐标系中的点,用(Xd ,Yd)来描述图像 成像坐标系中的点。图像成像坐标系的原点O在图像像素坐标系中的坐标为 (Cx, Cy),用 dx、dy 来表示相邻像素点中心在 X 轴方向和Y轴方向的实 际物理距离。
HALCON编程基础与工程应用
标定板图像
(a)
(b)
(c)
HALCON编程基础与工程应用
(d)
2、 HALCON标定助手标定过程
步骤1: 打开标定助手,设定描 述文件,标定板厚度,相机类 型、焦距等参数。
不同层次坐标系,以下是对这三种坐标系的定义。 1.世界坐标系(Xw,Yw,Zw) 就是现实坐标系,或全局坐标系,它是客观世界的绝对坐标,由用户任 意定义的三维空间坐标系,一般的3D场景用的就是这种坐标(HALCON 标定中以标定板为参考坐标系基准)。 2.相机坐标系(Xc,Yc) 以小孔相机模型针孔平面上的聚焦中心为原点,以相机光轴为Zc构成三 维坐标系,其中Xc、Yc与成像平面坐标系平行。 3.图像坐标系:分为成像平面坐标系和图像像素坐标系。 成像平面坐标系(x,y):其原点为透镜光轴与成像平面交点,X、Y轴 分别平行于相机坐标系Xc轴和Yc轴,是平面直角坐标系,单位mm。 图像像素坐标系(u,v):固定在图像上的以像素为单位的平面直角坐 标系,其原点位于图像左上角,其横纵两轴(对于数字图像,是行和列) 分别平行于成像平面坐标系的横、纵坐标轴X、Y,这个也是HALCON中 表示图像坐标系的方法。
HALCON编程基础与工程应用
11.4 HALCON标定助手
1、标定注意事项 HALCON中的标定助手为图像处理提供了一种很简便的标定方式,不仅简 化了标定步骤,也省去了繁琐的编程过程,我们只需要采集到符合标定 标准的标定板图像,了解设备的参数信息,比如相机类型、标定板厚度 等。 (1)标定板材质选用玻璃或者陶瓷材质为最好; (2)光源尽量在标定板前方,在与相机相反的方向; (3)标定板采集图像尽量在12幅以上,数量越多,所得的参数就越精确; (4)为了保证参数的精确性,要保证标定板的四角全部在视野范围内。 主要是因为一般标定板的四角畸变量比较大,需要通过四角的畸变程度 获得准确的畸变系数; (5)要保证标定板的标志点灰度值与其背景灰度值的差值在100以上, 否则HALOCN会提示有品质问题。
(1)初始相机参数:
startCamPar:=[f,k,Sx,Sy,Cx,Cy,NumCol,NumRow]
f-焦距 k-初始为0.0195 Sx-两个相邻像素点的水平距离 Sy-两个相邻像素点的垂直距离 Cx、Cy-图像中心点的位置 NumCol、NumRow-图像长和宽 (2)caltab_points,读取标定板描述文件里面描述的点(X,Y,Z),描述文件由
宽为一个圆点半径(0.9375) 黑色圆点半径:0.9375mm 圆点中心间距:3.75mm 裁剪宽度:30.75mm*30.75mm ,即由黑色边框向外
延伸0.375mm 边角:由黑色外边框向内缩进一个中心边距的长度
HALCON编程基础与工程应用
3、生成标定板
(1)方法一:用HALCON软件自动生成的.ps文件来制作标定板 这个也是最简单有效的方法。打开HALCON 软件,调用算子: gen_caltab( : :XNum,YNum,MarkDist,DiameterRatio,CalTabDescrFile,CalTabPSFile : ), 具体参数如下: XNum:每行黑色标志圆点的数量; YNum:每列黑色标志圆点的数量; MarkDist :两个就近黑色圆点中心之间的距离; DiameterRatio:黑色圆点半径与圆点中心距离的比值; CalTabDescrFile: 标定板描述文件的文件路径(.descr标定板描述文件); CalTabPSFile:标定板图像文件的文件路径(.ps标定板图形文件)。 例:生成一个30*30的标准标定板的HALCON源代码: gen_caltab(7,7,0.00375,0.5,’F:/HALCON程序/gencaltab/30_30.descr’)
转矩阵分别为 R()、R( )、R( ) 。
HALCON编程基础与工程应用
x' cos sin x
y'
s in
c
os
y
1 R( ) 0
0
0 c os sin
0
sin
cos
cos 0 sin
内部参数:内部参数只与相机内部结构有关,而与相机位置参数无关,
主个要像包元括的图高像宽主sx点、坐s标y ,(相c机x,的cy有)(效图焦像距与f相和机透光镜轴的相畸交变的失点真)系,数单k
等。主点坐标 ,理论上位于图像中心处,但实际上由于相机制作的 精度和使用过程中相机镜头可以转动和拆卸等原因,使得面阵相机并 不能保证其中心为透镜光轴,且图像采集数字化窗口的中心不一定与 光学中心重合,这就使得主点不一定在图像的中心,故而需要标定。。 单个像元的高、宽理论上应该是相等的,但是由于制造的误差,两者 不可能完全相等,因此需要根据实际情况对其进行修正。
HALCON编程基础与工程应用
从世界坐标系到相机坐标系
空间点Pw(Xw,Yw,Zw)转换到点 P(Xc,Yc,Zc):
P RPω
式中,R是旋转矩阵,T是平移向量。 每一个世界坐标的对象都可以通过旋转和平移变换到相机坐标
系上(旋转过程如下图)。将目标点旋转θ 角度,等价于将坐标系 按相反的方向旋转θ 角度。如下图所示,是二维坐标的旋转变换, 对于三维坐标而言,旋转中绕某一个轴旋转,原理与二维坐标旋转 相同。如果世界坐标分别绕 X、Y 和 Z轴旋转α 、β 、γ ,那么旋