halcon单相机标定详细说明

合集下载

第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、相机参数确定

halcon相机标定和测量示例

halcon相机标定和测量示例

Halcon单相机标定和测量示例相机标定有很多方式:九点标定法、棋盘格标定法、圆形阵列标定法;本次采用圆形阵列标定法。

1Halcon相机标定1.1标定板描述文件编制此次相机标定采用的是网购的标定板(直接在万能的某宝搜halcon标定板),如图1。

采购的时候卖家会提供标定板的相应参数,如图2。

图1标定板图 2 标定板参数用halcon标定助手标定的时候需要用到标定板的描述文件,此文件可以用gen_caltab算子自己编制。

如下为函数说明:gen_caltab( : : XNum, YNum, MarkDist, DiameterRatio, CalPlateDescr, CalPlatePSFile : ) 函数说明:创建一个标定文件和相应的脚本文件。

函数参数:Xnum:输入X方向标记(圆点)的数量,Xnum>1;Ynum:输入Y方向标记(圆点)的数量,Ynum>1;MarkDist:标记圆圆心间距离,单位“m”;(我看过一个资料翻译为标记点大小,差点被坑死)DiameterRatio:两标记点距离和标记直径的比值,默认:0.5。

0<DiameterRatio<1.0;CalPlateDescr:输入要保存的标定文件(此文件保存路径在算子窗口可更改),默认值: 'caltab.descr',参考: 'caltab.descr', 'caltab_100mm.descr', 'caltab_10mm.descr', 'caltab_200mm.descr', 'caltab_30mm.descr';CalPlatePSFile :标定板图像文件的文件路径(此文件保存路径在算子窗口可更改),默认: 'caltab.ps',后缀:ps。

此算子“XNum, YNum, MarkDist, DiameterRatio”这四个参数根据图2所示的标定板参数设置。

Halcon算子笔记3_相机标定+矫正图像

Halcon算子笔记3_相机标定+矫正图像

Halcon算子笔记3_相机标定+矫正图像Map_image.hdev: 矫正图像*关闭窗口dev_close_window ()dev_close_window ()*打开指定大小、颜色背景的窗口dev_open_window (0, 0, 768/2, 576/2, 'black', WindowHandle1)dev_update_pc ('off')dev_update_window ('off')dev_update_var ('off')dev_update_time ('off')dev_set_draw ('margin')dev_set_line_width (3)** Calibrate the camera.(标定相机)步骤一** 标定板描述文件CaltabName := 'caltab_big.descr'* make sure that the file 'CaltabDescrName' is in the current directory,* the HALCONROOT/calib directory, or use an absolut path *初始相机参数:焦距、畸变系数Kappa,Sx,Sy,Cx,Cy,ImageWidth,ImageHeight StartCamPar := [0.008,0,0.0000086,0.0000086,384,288,768,576]*物体在空间坐标系中的位姿数组NStartPose := []*行角点数组NRow := []*列角点数组NCol := []*X、Y、Z从标定表文件获取计算值caltab_points (CaltabName, X, Y, Z)*创建空的图像元组gen_empty_obj (Images)*图像的数目NumImages := 10*接下来for循环,依次读取、处理NumImages张图像for I := 1 to NumImages by 1*读取图像:Image得到图像数据read_image (Image, 'calib/calib-3d-coord-'+I$'02d')*将单个Image加入元组Images中concat_obj (Images, Image, Images)*显示Imagedev_display (Image)*在图像中找到标定板的区域:图像,标定板描述文件,滤波核大小,二值化值find_caltab (Image, Caltab, CaltabName, 3, 112, 5)*设置区域颜色:绿色dev_set_color ('green')*显示图像中标定板的区域dev_display (Caltab)*(核心函数:搜寻图像的原始点)在图像中找到标定板的各个角点坐标和初始位姿find_marks_and_pose (Image, Caltab, CaltabName, StartCamPar, 128, 10, 18, 0.9, 15, 100, RCoord, CCoord, StartPose) *设置颜色:红色dev_set_color ('red')*在窗口上圆形标记角点的位置disp_circle (WindowHandle1, RCoord, CCoord, gen_tuple_const(|RCoord|,1.5))*一个图像位姿加入位姿元组NStartPose := [NStartPose,StartPose]*所有图像角点行坐标数组相连NRow := [NRow,RCoord]*所有图像角点列坐标数组相连NCol := [NCol,CCoord]endfordev_update_time ('on')disp_continue_message (WindowHandle1, 'black', 'true')stop ()** Calculate the mapping.(计算带矫正信息的图像)步骤二**(核心函数)标定相机参数,对步骤一的数据进行计算处理camera_calibration (X, Y, Z, NRow, NCol, StartCamPar, NStartPose, 'all', CamParam, NFinalPose, Errors)*生成空的对象:包含矫正映射信息的图像gen_empty_obj (Maps)*for循环一次处理一组对应的图像for NumImage := 1 to NumImages by 1* Obtain the pose of the calibration table.*获取标定出来的位姿3DPose := NFinalPose[(NumImage-1)*7:(NumImage-1)*7+6]*设置新的原始3D位姿set_origin_pose (Pose, -1.125, -1.0, 0, PoseNewOrigin)*(核心函数)生成带矫正映射信息的图像MapSinglegen_image_to_world_plane_map (MapSingle, CamParam, PoseNewOrigin, 768, 576, 900, 800, 0.0025, 'bilinear')*将单张图像加入图像元组Mapsconcat_obj (Maps, MapSingle, Maps)endfordisp_continue_message (WindowHandle1, 'black', 'true')stop ()*代码到此处:有了NumImages张标定的原图+ NumImages张带矫正映射信息的图像,*接下来While循环,一张一张的矫正图像** Map the images.(矫正图像)步骤三**窗口设置dev_open_window (0, 391, 900/2, 800/2, 'black', WindowHandle2)Button := 0NumImage := 1while (Button # 1)dev_set_window (WindowHandle1)dev_set_part (0, 0, 575, 767)dev_clear_window ()*从图像元组中选择一张图像select_obj (Images, Image, NumImage)*显示选择的图像dev_display (Image)disp_message (WindowHandle1, 'Press any mouse button to stop', 'image', -1, -1, 'black', 'true')*选择对应位置的带矫正信息的图像select_obj (Maps, MapSingle, NumImage)*(核心函数)矫正图像:原图,带矫正信息图,矫正结果图map_image (Image, MapSingle, ImageMapped)*以下为窗口、循环之类的处理,与图像处理没什么关系dev_set_window (WindowHandle2)dev_set_part (0, 0, 799, 899)dev_clear_window ()dev_display (ImageMapped)NumImage := NumImage + 1if (NumImage > NumImages)NumImage := 1endifdev_error_var (Error, 1)dev_set_check ('~give_error')get_mposition (WindowHandle1, R, C, Button)dev_error_var (Error, 0)dev_set_check ('give_error')if (Error#H_MSG_TRUE)Button := 0endifif (Button)breakendifendwhiledev_set_window (WindowHandle2) dev_close_window ()。

HALCON数字图像处理 第11章 标定

HALCON数字图像处理 第11章 标定
图像像素坐标系的转化关系
2、标定的内外参数
外部参数:由前面可知,相机的外部参数是用来描述相机坐标系与世
界坐标系的关系,它表明相机在世界坐标系中的位置和方位,可用旋
转矩阵和平移向量来表示。实质上旋转矩阵只有三个独立参数,加上
平移向量的三个参数,故一共有6个独立的外部参数。
内部参数:内部参数只与相机内部结构有关,而与相机位置参数无关,
否则HALOCN会提示有品质问题。
HALCON数字图像处理
标定板图像
(a)
(c)
HALCON数字图像处理
(b) (d)
2、 HALCON标定助手标定过程
步骤1: 打开标定助手,设定描 述文件,标定板厚度,相机类 型、焦距等参数。
图中 ,表示Sx和Sy按照1:1的关 系关联,同步调节,因为面阵相机 的像元一般是方形的,宽和高是一 样的。如果取消关联,那么Sx和Sy
HALCON数字图像处理
图像成像坐标系到图像像素坐标系
如图所示,图像成像坐标系是以毫米为单位的直角坐标系 X-Y。用(Xf ,Yf)来描述图像像素坐标系中的点,用 (Xd ,Yd)来描述图像成像坐标系中的点。图像成像坐 标系的原点O在图像像素坐标系中的坐标为(Cx, Cy),用 dx、dy 来表示相邻像素点中心在 X 轴方向和Y轴方向的 实际物理距离。
可以异步调节。
步骤2:加载图像,可以实时采集,也 可以采集好后再一起标定,建议先采 集后标定。图中所示加载标定板图像 的窗口,还需要将其中的一幅图像设 置为参考位姿。
HALCON数字图像处理
步骤3:在采集图片合格后,点击上 一步骤图中的“标定”按钮,标定 结果就出来了,如图所示,在这一 步的窗口中,会有标定之后的相机 内外参数等标定结果。

halcon摄像机标定

halcon摄像机标定

基于HALCON的双目立体视觉系统实现摘要双目立体视觉的研究一直是机器视觉中的热点和难点。

使用双目立体视觉系统可以确定任意物体的三维轮廓,并且可以得到轮廓上任意点的三维坐标。

因此双目立体视觉系统可以应用在多个领域。

本文将主要介绍如何基于HALCON实现双目立体视觉系统,以及立体视觉的基本理论、方法和相关技术,为搭建双目立体视觉系统和提高算法效率提供了参考。

关键词双目视觉三维重建立体匹配摄像机标定视差双目立体视觉是机器视觉的一种重要形式,它是基于视差原理并由多幅图像获取物体三维几何信息的方法。

双目立体视觉系统一般由双摄像机从不同角度同时获得被测物的两幅数字图像,或由单摄像机在不同时刻从不同角度获得被测物的两幅数字图像,并基于视差原理恢复出物体三维几何信息,重建物体三维轮廓及位置。

双目立体视觉系统在机器视觉领域有着广泛的应用前景。

HALCON是在世界范围内广泛使用的机器视觉软件。

它拥有满足您各类机器视觉应用需求的完善的开发库。

HALCON也包含Blob分析、形态学、模式识别、测量、三维摄像机定标、双目立体视觉等杰出的高级算法。

HALCON支持Linux和Windows,并且可以通过C、C++、C#、Visual Basic和Delphi语言访问。

另外HALCON与硬件无关,支持大多数图像采集卡及带有DirectShow和IEEE 1394驱动的采集设备,用户可以利用其开放式结构快速开发图像处理和机器视觉应用软件。

一.双目立体视觉相关基本理论介绍1.1 双目立体视觉原理双目立体视觉三维测量是基于视差原理,图1所示为简单的平视双目立体成像原理图,两摄像机的投影中心的连线的距离,即基线距为b。

摄像机坐标系的原点在摄像机镜头的光心处,坐标系如图1所示。

事实上摄像机的成像平面在镜头的光心后,图1中将左右成像平面绘制在镜头的光心前f处,这个虚拟的图像平面坐标系O1uv的u轴和v轴与和摄像机坐标系的x轴和y轴方向一致,这样可以简化计算过程。

Halcon相机标定简介

Halcon相机标定简介

Halcon相机标定简介相机标定简介⾸先镜头有畸变,也就是说照出的图像与实际不符产⽣了形变。

即使⼯业镜头也是有千分之⼏的畸变率的。

上个图告诉⼤家畸变这个图⾥,第⼀个图就是我们相机下的真实的形状,后边两个就是照出来有畸变的图⽚。

其次镜头与相机⽆论你的机械结构精度多⾼,也不容易或者说没办法将相机安装的特别正,那相机安装不正也是会导致误差的。

⼤家想知道具体数学模型的话可以搜⼀下相机标定的理论⽅⾯的知识,我侧重怎么做。

标定就是把上述两个东西转化成正常的。

⽆论是在图像测量或者机器视觉应⽤中,相机参数的标定都是⾮常关键的环节,其标定结果的精度及算法的稳定性直接影响相机⼯作产⽣结果的准确性。

深度说明1、相机标定参数介绍内参:确定摄像机从三维空间到⼆维空间的投影关系。

针孔相机(FA镜头相机)模型为6个参数(f,kSx,Sy,Cx,Cy);远⼼镜头相机模型为5个参数(f,Sx,Sy,Cx,Cy);线阵相机为11个参数(f,k,Sx,Sy,Cx,Cy,Width,Highth,Vx,Vy,Vz)。

其中:f为焦距;k表⽰径向畸变量级。

如果k为负值,畸变为桶形畸变,如果为正值,那么畸变为枕形畸变。

Sx,Sy是缩放⽐例因⼦。

对于相机(FA镜头)表⽰图像传感器⽔平和垂直⽅向上相邻像素之间的距离,初始值与真实值越接近计算速度越快。

对于远⼼摄像机模型,表⽰像素在世界坐标系中的尺⼨。

Cx,Cy是图像的主点,对于相机,这个点是投影中⼼在成像平⾯上的垂直投影,同时也是径向畸变的中⼼。

对于远⼼摄像机模型,只表⽰畸变的中⼼。

Vx,Vy,Vz:线阵相机必须与被拍摄物体之间有相对移动才能拍摄到⼀幅有⽤的图像。

这是运动向量。

Sx,Sy对于线阵相机是相邻像元的⽔平和垂直距离。

2、标定板详细介绍问题1:halcon是否只能使⽤halcon专⽤的标定板?halcon提供了简便、精准的标定算⼦与标定助⼿,这在实际使⽤中极⼤地⽅便了使⽤者在halcon中有两种标定⽅式:halcon⾃带例程中出现的,⽤halcon定义的标定板,如下图:⽤户⾃定义标定板,⽤户可以制作任何形状、形式的标定板,如下图:所以,halcon并⾮只能使⽤专⽤标定板,也可以使⽤⾃定义标定板就可以进⾏标定。

halcon摄像机初始参数设置

halcon摄像机初始参数设置

halcon摄像机初始参数设置StartCamParam(input_control)数阵→(真实/整数)Camer type为:'area_scan_division''area_scan_polynomial''area_scan_telecentric_division''area_scan_telecentric_polynomial''line_scan'(类型不同,参数不同)相机内部参数的初始值。

元素数量:((StartCamParam==8)| |(StartCamParam==11))| |(StartCamParam== 12)一般,初值是8个时:(f,K,Sx,Sy,Cx,Cy, ImageWidth:, ImageHeight:)类型为:area_scan_divisionf——焦距K——畸变系数(泰勒级数的第1项)Sx——x方向像元间的距离Sy——y方向像元间的距离Cx——图片x方向光心坐标(初值为ImageWidth/2)Cy——图片y方向光心坐标(初值为ImageHeight /2)ImageWidth——图片宽度ImageHeight——图片高度初值是12个时:(f,K1,K2,K3,P1,P2,Sx,Sy,Cx,Cy, ImageWidth:, ImageHeight:)K1,K2,K3——畸变系数(泰勒级数的前三项)StartThresh(input_control)数量→(整数)轮廓检测的初始阈值。

默认值:128可设值:80,96,112,128,144,160限制:StartThresh> 0DeltaThresh(input_control)数量→(整数)StartThresh减少时的步长默认值:10可设值:6,8,10,12,14,16,18,20,22限制:DeltaThresh> 0MinThresh(input_control)数量→(整数)轮廓检测的最低值。

基于Halcon的单目相机标定方法与测量实验

基于Halcon的单目相机标定方法与测量实验

基于Halcon的单目相机标定方法与测量实验
李晓晓;吴昊荣;孙付春;杨涛
【期刊名称】《山东工业技术》
【年(卷),期】2022()5
【摘要】机器视觉已经在现代工业自动化生产中得到了广泛应用,尤其是在三维测量领域。

物体三维空间与二维图像间的关系求解离不开相机标定,尤其是相机标定结果的优劣直接决定了机器视觉的测量精度。

通过搭建单目相机视觉系统实验平台,先分析了相机标定的工作原理,再利用Halcon软件的标定助手功能对型号为
GB050-2-7×7的圆点标定板进行相机标定,获得了相机的内参和外参。

在进一步测量实验中验证了单个特征圆点测量偏差为0.03862 mm、多个特征圆点测量平均偏差为0.05655 mm,二者测量精度都高于0.1 mm,说明了利用机器视觉进行测量能够满足常用精度需求。

【总页数】5页(P8-12)
【作者】李晓晓;吴昊荣;孙付春;杨涛
【作者单位】成都大学机械工程学院;成都大学电子信息与电气工程学院;成都农业科技职业学院机电信息学院
【正文语种】中文
【中图分类】TP249
【相关文献】
1.基于天牛须搜索算法的单目相机标定方法
2.基于稀疏字典学习的单目相机标定方法
3.基于改进粒子群算法的单目相机标定算法
4.基于Halcon的单目相机标定案例实现
5.基于Halcon深度学习和线扫相机标定的闸片剩余厚度测量
因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

相机标定1 相机标定基本原理1.1 相机成像模型目前大多数相机模型都是基于针孔成像原理建立的,因为针孔成像原理简单,并且能满足建模的要求。

除此之外还有基于应用歪斜光线追踪法和近轴光线追踪法的成像模型[1]。

针孔成像虽然已经展示出了相机的成像原理,但是由于针孔成像是理想的物理模型,没有考虑相机本身的尺寸、镜头与相机轴心的偏斜等因素的影响,因此精度很低,不能满足工业机器视觉的要求。

为了使相机模型能高精度的反应相机的实际成像过程,需要再针孔成像模型的基础上考虑镜头畸变等的因素。

图1 针孔成像基于针孔成像原理建立的相机的成像模型,如下图所示。

在相机的成像模型中,包含有几个坐标系分别是世界坐标系、相机坐标系、图像坐标系,相机的成像过程的数学模型就是目标点在这几个坐标系中的转化过程。

图2 针孔成像模型(1)世界坐标系(X w,Y w,Z w),就是现实坐标系,是实际物体在现实世界中的数学描述,是一个三维的坐标空间。

(2)摄像机坐标系(X c, Y c),以针孔相机模型的聚焦中心为原点,以摄像机光学轴线为Z c轴(3)图像坐标系:分为图像像素坐标系和图像物理坐标系为了便于数学描述将图像平面移动到针孔与世界坐标系之间。

如下图所示。

图3 将相机平面移至针孔与目标物体之间后的模型1.2 坐标系间转换从世界坐标系到相机坐标系:P(X c ,Y c ,Z c )=R(α,β,γ)∗P(X w ,Y w ,Z w )+T每一个世界坐标的对象都可以通过旋转和平移转移到相机坐标系上。

将目标点旋转θ角度,等价于将坐标系方向旋转θ。

如下图所示,是二维坐标的旋转变换,对于三维坐标而言,旋转中绕某一个轴旋转,原理实际与二维坐标旋转相同。

如果,世界坐标分别绕X ,Y 和Z 轴旋转α,β,γ,那么旋转矩阵分别为R (α),R (β),R (γ)图4 坐标旋转原理R (α)=[1000cosα−sinα0sinαcosα] (1-1) R (β)=[cosβ0sinβ010−sinβ0cosβ] (1-2)R (γ)=[cosγsinγ0−sinγcosγ0001] (1-3)总的旋转矩阵就是三者的乘积:R(α,β,γ)=R (α)∗R (β)∗R(γ)平移矩阵T =(t x ,t y ,t z ),t x ,t y ,t z 是世界坐标系原点与摄相机坐标系原点之间的差值。

相机坐标系到图像坐标系X d =f X c Z c ,Y d =f Y c Z c [X d Y d ]=f Z c [X c Y c] (1-4)(1-5)图5 相机成像坐标变换原理图图像物理坐标到图像像素坐标系图形坐标系是一个二维坐标系,又分为图像像素坐标系和图像物理坐标系。

图像像素坐标系X f -Y f 是以图像左上角为原点,以图像互为直角的两个边缘为坐标轴,满足右手准则而建立的。

图像是由一个个小的像素点组成的,图像像素坐标系的横纵坐标正是以像素点为单位,用来描述图像中每一个像素点在图像中的位置。

图像物理坐标系以光轴与像平面交点为圆心建立的,图像物理坐标系的两个坐标轴分别与图像像素坐标系的坐标轴平行,并且方向相同,如图3所示。

图像物理坐标系是以毫米为单位的直角坐标系X-Y 。

用(X f ,Y f )来描述图像像素坐标系中的点,用(X d ,Y d )来描述图像物理坐标系中的点。

图像物理坐标系的原点O 在图像像素坐标系中的坐标为(C x , C y ),用dx ,dy 来表示相邻像素点中心在X 轴方向和Y 轴方向的实际物理距离,则与图像像素坐标系的转化关系为:{ X f =X d dx +C x Y f =Y d dy +C y (1-6)1.4相机畸变模型相机畸变主要分为径向畸变和切向畸变,其中径向畸变是由透镜造成的,切向畸变是由成像仪与相机透镜的不平行造成的。

针孔模型是理想透镜的成像模型,但是实际中相机的透镜不可能是理想的模型,透镜形状的非理想特征造成像点会沿径向发生畸变。

一个像点沿径向内缩叫负畸变,或桶形畸变沿径向外延叫正畸变,或枕形畸变。

这种崎变相对于光轴严格对称的,也是畸变的主要分量[2]。

(X u ,Y u )为矫正后的坐标,(X d ,Y d )是受到镜头失真影响而偏移的像平面坐标,径向径向畸变模型:X u =X d +X d (k 1r 2+k 1r 4+⋯) Y u =Y d +Y d (k 1r 2+k 1r 4+⋯) (1-7)(1-8)其中k 1,k 2,⋯为径向畸变系数,r =√X d 2+Y d 2,一般只需要考虑一阶或二阶就可以满足要求。

切向畸变模型:X u =X d +P 1X d (3X d 2+Y d 2)+2P 2X d Y d +O[(X d ,Y d )4]Y u =Y d +P 2X d (3X d 2+Y d 2)+2P 1X d Y d +O[(X d ,Y d )4](1-9) (1-10) 其中P 1和P 2为切向畸变影响系数。

图7 径向畸变图8 切向畸变图6 图像像素坐标系和图像物理坐标系1.5需要标定的参数外部参数由前面可知,摄像机的外部参数是用来描述摄像机坐标系与世界坐标系的关系,它表明摄像机在世界坐标系中的位置和方位,可用的旋转矩阵和平移向量来表示,如式一所示。

其中由于为单位正交矩阵,必须满足个正交约束,故实质上旋转矩阵只有三个独立参数,加上平移向量的三个参数,故一共有个独立的外部参数。

内部参数内部参数只与摄像机内部结构有关,而与摄像机位置参数无关,主要包括图像主点坐标(c x,c y),单个像元的高宽s x,s y,摄像机的有效焦距f和透镜的畸变失真系数k等。

摄像机的内部参数有时也可以从制造商提供的说明书中查到,但是其精确性不能满足要求,仅可作为参考。

实际应用中需要对它们进行标定。

主点坐标(c x,c y),理论上主点坐标一般位于图像中心处,但实际上由于摄像机制作和使用摄像机的镜头可转动和拆卸等原因,使得面阵安装并不能保证以透镜光轴为中心,且图像采集数字化窗口的中心不一定与光学中心重合,这就使得主点不一定在图像的帧存中心,故需要标定,,的值。

单个像元的高宽s x,s y,该数据可以在制造商提供的技术文档中查到,但是该数据不是完全准确的。

单个像元的高宽理论上应该是相等的,但是由于制造的误差,两者不可能完全相等,因此需要根据实际情况对其进行修正。

透镜的畸变失真系数前面讲到理想的透镜成像才满足线性关系,实际上透镜存在多种非线性畸变,需要根据实际情况对它们进行修正。

1.6计算方法张正友标定法、Tsai两步标定法。

参考文献:1宋旗桂. 应用歪斜光线追踪法及近轴光线追踪法于照相机校正[D]. 台湾: 国立成功大学, 2007.2 邹凤娇. 摄像机标定及相关技术研究[D]. 成都:四川大学,硕士学位论文,2005.1.7目前设备中采用过的标定方法1、目前在RFID设备、LCR设备中标定都只采用一张,忽略相机畸变。

通过图像处理,提取标定板圆心的间距除以像素值得到。

该方法得到像素X方向和Y方向采用同一距离,忽略其误差。

2、Halcon的三维标定,是halcon默认的标定方法,消除径向畸变和视角畸变,在XYZ图9 Halcon三维标定采集图像示例3、Halcon的二维标定,只在XY平面内平移和旋转标定板,采集18张图像,减小Z的影响提高标定精度实验数据:图像坐标X方向像素物理距离图像坐标Y方向像素物理距离方法一15.5618um 15.5618um方法二15.7575um 15.7308um方法三采用方法一每个像素距离与方法二有0.2um的差距,当距离较小时,这个误差可能表现的并不明显,在目前的设备中基本能满足要求。

根据方法二知道X方向与Y方向像素物理差值是0.027um。

存在的问题:1、目前标定板相对视野范围显得有点大,会降低标定的精度。

考虑自己制作标定板,打印出来,但是遇到问题是,打印出来标定板大小与我设计的标定板大小有些许差距,可能是由于文件格式转换过程中导致像素改变使打印的大小出现偏差。

2、因尽量减小光圈,提高景深,提升标定精度。

后期采图时,尽量减小光圈。

2 使用Halcon标定助手进行标定2.1 标定描述机器视觉本质就是通过图像来获取三维世界的信息,然后基于该信息进行相应的图像处理手段,从中获取我们想要的信息。

标定的过程实际是建立图像世界与三维世界位姿的关系,只有准确地建立了该关系,才能从图像准确得知三维世界的真实状态。

但是镜头在拍摄物体时存在成像的畸变,镜头成像的畸变导致图像不能完全地反映真实的世界,对图像的后续处理会产生干扰。

尤其对于定位和检测,需要更高精度的矫正。

镜头成像的畸变分为径向畸变和切向畸变,相对切向畸变而言,径向畸变对图像影响较大,而径向畸变分为枕形畸变(Pincushion Distortion)和桶形畸变(Barrel Distortion),如图3所示。

因此,相机标定要矫正镜头的畸变,然后获取相机的内部参数和外部参数,建立起图像与三维世界的联系。

图3 枕形畸变与桶形畸变一个成功的标定,至少需要一个知道其精确尺寸的标定板。

在标定前需要采集不同姿态的标定板图像,确保每张图像都完整的包含了标定板。

标定图像的质量,很大程度上决定了标定是否能成功2.2 标定板标定的方法从原理上主要分为三大类:线性标定、非线性标定和二次标定。

使用的标定板有棋盘格也有原点阵列,如图4所示。

(a)棋盘格(b)原点阵列图4 标定板但是,halcon并非必须使用其特制的标定板才能进行相机标定,但是如果要使用Halcon 的标定算子进行标定,则必须使用Halcon特定的标定板,否则就需要自己去写标定板和特征点提取的算法了。

Halcon的标定板如图5所示,黑色的边框中有阵列分布的原点,在边框的左上角有个小三角用来确定其旋转的位置。

以30*30mm的标定板为例:黑色原点:7*7边框长度:30*30mm内边框长度:28.125mm*28.125mm黑色原点半径:0.9375mm原点中心间距:3.75mm裁剪宽度:30.75*30.75mm图5 halcon标定板标定板制作:Halcon的安装后的文件中含有部分型号标定板的描述文件,但是由于实际应用中的标定板尺寸与系统描述文件不一致,因此需要定制相应的描述文件。

Halcon中用gen_caltab(::XNum,YNum,MarkDist,DiameterRatio,CalTabDescrFile,CalTabPSFile:) 算子来制作一个标定板XNum 每行黑色标志圆点的数量。

YNum 每列黑色标志圆点的数量。

MarkDist 两个就近黑色圆点中心之间的距离。

单位是meterDiameterRatio 黑色圆点直径与两圆点中心距离的比值。

相关文档
最新文档