halcon单相机标定详细说明

合集下载

Halcon学习(二十二)摄像机标定(函数详解)

Halcon学习(二十二)摄像机标定(函数详解)

Halcon学习(二十二)摄像机标定(函数详解)TmpCtrl_AllMarkRows := []TmpCtrl_AllMarkColumns := []TmpCtrl_StartPoses := []TmpCtrl_ReferenceIndex := 0StartParameters := [0.008,0,5.2e-006,5.2e-006,640,512,1280,1024]for Index := 0 to |ImageFiles|-1 by 1read_image (Image, ImageFiles[Index])find_caltab (Image, TmpObj_PlateRegion, 'E:/calibration_description/caltab_123mm.descr', 3, 112, 5) find_marks_and_pose (Image, TmpObj_PlateRegion, 'E:/calibration_description/caltab_123mm.descr', StartParameters, 128, 10, 18, 0.9, 15, 100, TmpCtrl_MarkRows, TmpCtrl_MarkColumns, TmpCtrl_EstimatedPose)TmpCtrl_AllMarkRows := [TmpCtrl_AllMarkRows, TmpCtrl_MarkRows]TmpCtrl_AllMarkColumns := [TmpCtrl_AllMarkColumns, TmpCtrl_MarkColumns]TmpCtrl_StartPoses := [TmpCtrl_StartPoses, TmpCtrl_EstimatedPose]endforcaltab_points('E:/calibration_description/caltab_123mm.descr', TmpCtrl_X, TmpCtrl_Y, TmpCtrl_Z)camera_calibration (TmpCtrl_X, TmpCtrl_Y, TmpCtrl_Z, TmpCtrl_AllMarkRows, TmpCtrl_AllMarkColumns, StartParameters, TmpCtrl_StartPoses, 'all', CameraParameters, TmpCtrl_FinalPoses, TmpCtrl_Errors)tuple_select_range (TmpCtrl_FinalPoses, 7*TmpCtrl_ReferenceIndex, 7*TmpCtrl_ReferenceIndex + 6, CameraPose)set_origin_pose (CameraPose, 0.0, 0.0, 0.001, CameraPose)stop ()一、读入图像,函数如下list_files ('E:/calibration_image', 'files', ImageFiles)for Index := 0 to |ImageFiles|-1 by 1read_image(Image, ImageFiles[Index])endfor注释:'E:/calibration_image':为图像路径,图像文件索引是从0开始的,所以|ImageFiles|(文件数量)减去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数字图像处理 第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单相机标定详细说明

相机标定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 是世界坐标系原点与摄相机坐标系原点之间的差值。

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算子笔记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标定板》课件

《halcon标定板》课件

标定板的使用方法
1
步骤二
2
通过相机控制软件拍摄多张标定板图像,
覆盖不同角度和焦距。
3
步骤一
将标定板放置在相机视野范围内,并确 保图像中能够完整显示标定板。
步骤三
使用图像处理软件根据标定板图像进行 相机校准和畸变矫正。
标定板的使用注意事项
平整稳定
在使用标定板时,确保其平 整稳定,防止标定板变形或 松动。
《halcon标定板》PPT课 件
欢迎使用《halcon标定板》PPT课件!本课件将介绍标定板和其在计算机视觉 中的功能与用途,标定板的种类、选择原则、使用方法,以及在使用过程中 需要注意的事项,以及常见问题及解决方案。让我们开始学习吧!
标定板的功能与用途
1 准确测量
标定板用于对相机进行准确的校准和测量,提供精确的图像尺寸和坐标信息。
圆形标定板
圆形标定板由一组同心圆组成, 用于测量图像畸变和判定图像 中心。
标定板的选择原则
1 尺寸和比例
根据应用需求选择合适的 标定板尺寸和比例,确保 能够覆盖场景中的目标物 体。
2 材质和耐用性
选择耐用且易于清洁的材 质,定点密度
根据需要选择标定点的密 度,以满足对精度和检测 要求的不同需求。
2 图像处理
标定板在图像处理中起着重要的作用,可以用于图像对齐、畸变校正和三维重构等领域。
3 质量控制
通过使用标定板进行相机标定,可以提高产品质量控制,并确保图像中的目标尺寸和形 状精准。
标定板的种类
角点标定板
角点标定板由一组明暗交替的 角点组成,用于角点检测和图 像畸变校正。
栅格标定板
栅格标定板由一组等间距的平 行线组成,用于测量图像畸变 和场景深度。

halcon辐射标定

halcon辐射标定

Halcon辐射标定1. 简介Halcon是一种广泛应用于机器视觉领域的软件工具。

辐射标定是Halcon中的一个重要功能,用于校准相机的辐射性能。

通过辐射标定,我们可以获取相机的辐射响应函数,从而在图像处理中进行辐射校正,提高图像质量和准确性。

2. 辐射响应函数辐射响应函数是相机对不同辐射强度下光线的响应关系。

在辐射标定中,我们希望通过一系列已知辐射强度的图像来建立相机的辐射响应函数。

辐射响应函数通常使用灰度值来表示,可以简单地理解为相机对光线的亮度感知能力。

通过辐射标定,我们可以得到一个灰度值到辐射强度的映射关系,从而在后续的图像处理中将图像的灰度值转换为真实的辐射强度。

3. 辐射标定流程辐射标定的流程可以分为以下几个步骤:3.1 图像采集首先,需要采集一系列具有不同辐射强度的图像。

可以通过控制光源的亮度或使用不同的滤光片来实现不同的辐射强度。

采集的图像应覆盖整个辐射范围,并尽可能避免过曝或欠曝的情况。

3.2 图像预处理在进行辐射标定之前,需要对采集的图像进行预处理。

预处理的目的是去除图像中的噪声和干扰,提高标定的准确性。

常见的预处理操作包括去噪、图像增强、图像配准等。

3.3 提取感兴趣区域在标定过程中,我们只关注感兴趣区域内的像素。

因此,需要通过图像分割或者手动选择的方式提取感兴趣区域。

感兴趣区域应包含辐射强度变化明显的区域,以提高标定的准确性。

3.4 计算灰度值和辐射强度的对应关系通过提取的感兴趣区域,可以计算每个像素的灰度值和对应的辐射强度。

可以选择一种已知的辐射强度作为参考,然后计算每个像素的灰度值和参考辐射强度之间的比例关系。

最终得到灰度值和辐射强度的对应关系,即辐射响应函数。

3.5 辐射校正在图像处理过程中,可以通过辐射响应函数将图像的灰度值转换为真实的辐射强度。

这样可以提高图像处理的准确性和可靠性。

辐射校正的过程是将图像中的每个像素的灰度值通过辐射响应函数进行映射,得到相应的辐射强度。

halcon标定计算像素的公式

halcon标定计算像素的公式

当我们谈论机器视觉时,标定是一个非常重要的概念。

在机器视觉领域中,Halcon是一个非常知名的软件评台,而标定计算像素的公式就是在Halcon中经常被提及的一个重要概念。

在这篇文章中,我们将深入探讨Halcon标定计算像素的公式,以及它在机器视觉中的作用和应用。

我们将从简单的概念和原理开始,逐步深入到更复杂和高级的应用场景,以便读者能够更全面地理解这一重要主题。

1. 概念和原理在Halcon中,标定计算像素的公式是基于相机的内参和外参进行计算的。

相机的内参包括焦距、主点和畸变参数等,而外参包括相机的旋转和平移矩阵。

通过这些参数,我们可以计算出相机的视场和像素坐标之间的关系,从而实现像素坐标到世界坐标的转换。

2. 应用和意义标定计算像素的公式在机器视觉中具有非常重要的应用和意义。

它可以帮助我们实现相机的空间定位和姿态估计,从而实现对目标的精确定位和跟踪。

在工业自动化、无人驾驶和智能制造等领域,这一技术都有着重要的应用价值。

3. 个人观点和理解从个人角度来看,我认为标定计算像素的公式是机器视觉中的一项非常重要的技术。

它不仅可以帮助我们实现对物体的精确定位和跟踪,还可以为智能制造和自动化生产提供重要支持。

通过深入学习和理解这一技术,我们可以更好地应用它来解决实际问题,并推动机器视觉技术的发展。

总结回顾通过这篇文章的阅读,相信读者已经对Halcon标定计算像素的公式有了更全面和深入的理解。

从概念和原理到应用和意义,再到个人观点和理解,我们已经对这一重要主题进行了全面的探讨和分析。

希望读者能够通过本文的阅读,对这一技术有着更深刻和灵活的理解,进而更好地应用它来解决实际问题。

Halcon标定计算像素的公式在机器视觉领域中扮演着极为重要的角色。

它不仅仅是一个计算公式,更是机器视觉技术的核心之一。

在实际应用中,标定计算像素的公式被广泛应用于工业自动化、无人驾驶、智能制造等领域。

下面我们将进一步探讨Halcon标定计算像素的公式在这些领域中的具体应用和意义。

Halcon学习(十九)标定文件的生成

Halcon学习(十九)标定文件的生成

Halcon学习(十九)标定文件的生成Halcon标定文件的生成,需要有以下几个步骤:1.创建一个标定数据模板,由create_calib_data算来完成。

2.指定相机的类型,初始化相机内部参数,由set_calib_data_cam_param算子来完成。

3.指定标定板的描述文件,由set_calib_data_calib_object算子完成。

4.收集观察数据,有算子set_calib_data_observ_points完成。

也就是收集标定板上圆点的中心坐标,跟各个校正板的位置姿态。

5.配置校正过程。

由算子set_calib_data完成。

6.将数据整合进行标定计算。

calibrate_cameras7.获得标定参数。

get_calib_data8.记录标定参数,write_cam_parStartCamPar := [0.016, 0, 0.0000074, 0.0000074, 326, 247, 652, 494]解释一下这个数组的意思。

面阵相机有14或18个参数(根据想相机的畸变模式),对于线阵相机有17个参数。

这些参数可以分开为内部相机参数、外部相机参数。

面阵相机(division模式):Focus(焦距):远焦镜头镜头焦距的长度Kappa:扭曲系数Sx,Sy:两像素间距Cx,Cy:中心点坐标Whith,Height:图像的宽高面阵相机(polynomia模式):Focus(焦距):远焦镜头镜头焦距的长度K1, K2, K3, P1,P2:扭曲系数Sx,Sy:两像素间距Cx,Cy:中心点坐标Whith,Height:图像的宽高线阵相机不做具体介绍。

基于HALCON软件的摄像机标定的研究报告

基于HALCON软件的摄像机标定的研究报告

基于HALCON软件的摄像机标定的研究报告摄像机标定是计算机视觉中最基础而又最重要的问题之一,通过标定可以实现摄像机畸变矫正、三维重建、轨迹跟踪等诸多操作。

HALCON是一款流行的计算机视觉和机器视觉开发工具,其自带的摄像机标定模块可以实现对相机内外部参数的计算和优化,并可生成标定文件以供后续操作使用。

本文将介绍HALCON软件的摄像机标定原理和流程,并使用实验数据进行验证。

一、HALCON摄像机标定原理HALCON摄像机标定基于Perspective Projection Model(透视投影模型),即传统的针孔相机模型。

根据这个模型,每个点在图像平面上的位置可以用其在三维空间中的坐标(x,y,z)和摄像机参数(focal length、principal point、radial distortion、tangential distortion等)计算得出。

因此,摄像机标定的主要目的是测量这些摄像机参数,以实现对图像的畸变矫正。

二、HALCON摄像机标定流程HALCON摄像机标定流程包含以下几个步骤:1. 准备标定板:使用一张精确已知的标定板(如棋盘格)作为标定物体。

标定板上应该有一定数量的格子,并且格线应该较为清晰,以便识别。

2. 拍摄标定板照片:摄像机需要从至少两个不同角度拍摄标定板的照片,以获得足够的信息来计算摄像机参数。

拍摄时应注意保持标定板与摄像机位置、光照等条件的一致性。

3. 提取标定板角点:使用HALCON提供的Corner Detection(角点检测)算法,对标定板照片中的角点进行提取。

提取的角点应该较为准确,并尽可能地覆盖整个标定板。

4. 生成初始参数:对提取的角点进行3D-to-2D转换,生成摄像机的初始内外部参数。

这些参数可以作为优化算法的初始值。

5. 优化参数:使用HALCON自带的Optimize Calibration Object Parameters(标定参数优化)算法,对摄像机内外部参数进行优化。

使用Halcon助手来制作标定数据

使用Halcon助手来制作标定数据

使用Halcon助手来制作标定数据/hust1900/article/details/86877841打开halcon标定助手2.标定任务一栏,选择位姿和所有参数(此为默认情况);标定板一栏,则点击文件浏览,\clib\ 选择halcon自带的一个标定板文件(也可以自作一个标定板文件,使用gen_caltab算子);相机模型一般都是面扫面相机(参考书上说多使用多项式相机),线扫描相机一般用于运动测量(不确定这里),其他参数根据具体自行设置3.标定环节。

该环节主要是采集标定板在视野范围内不同地方的多个图像,从而得到更为精确的摄像机外部参数。

图像源是用来获得标定板图像的,有两种方式:方式一,“图像文件”,则是已经采集好各种标定板位置图像,然后直接加载进去(注意,存放文件的路径不能有中文,文件夹也不能用中文);方式二,”图像助手“可以通过相机采集各种位置图像。

注意:拖动标定板,使得采集到的标定板位置能够填充整个视野,这样得到的摄像机数据才更精确。

(一般需要采集至少十幅图,包括各个角落,标定板倾斜等等位置图像)同时实时调整下方的标定板读取参数,来获得理想的图当加载完成后,点击标定,即可完成摄像机数据计算。

4,结果一栏。

可以清楚看到标定板的标定状态,摄像机参数,此为摄像机内参,在相机焦距,镜头等均不动的情况下,这些数据时不变的。

点击右边的”保存“,可以保存当前状态下摄像机的内部参数(*.cal文件)。

当使用当前状态下的相机去标定时候,可以直接读取这个文件,从而获得相机内参。

而摄像机位姿一栏,则描述的是摄像机的外部参数(可以保存为*.dat文件),即为相机坐标系下的图像位置和世界坐标系下的位置之间的映射关系。

当不改变相机状态,直接用来标定时候,也可以直接使用当前的外参来标定摄像机参数一栏:摄像机参数为内参,描述的是相机坐标系和成像坐标系之间的对应关系。

各参数的意义:像素的宽和高表示成像平面得到的像素的米制单位焦距:成像平面到成像中心的距离Kappa(即上图的K1,K2,K3,P1,P2):畸变系数。

利用Halcon进行单目标定

利用Halcon进行单目标定

利用Halcon进行单目标定楼主#更多•只看楼主倒序阅读发布于:2020-01-23 10:12摄像机标定之前,首先要确定相机和镜头的参数,参考对应说明书,查找IMAGING SOUR CE 31BU03相机的参数如下:分辨率1024*768;格式1/3’’;像素尺寸,水平4.65um,垂直4.65um;两个镜头是computar工业自动化镜头,其参数分别是:①焦距5mm,F1.4,尺寸1/2’’,②焦距12mm,F1.4,尺寸2/3’’。

相机和镜头参数作为标定过程中算子StartCa mPar的初值。

标定过程首先,创建标定数据模型,使用算子create_calib_data,实例中为create_calib_data ('cali bration_object', 1, 1, CalibDataID),该算子是为了创建标定数据模型,即标定的数据将存放于CalibDataID中。

其次,设定摄像机的初始化参数,即第一段所提及。

算子为set_calib_data_cam_param (C alibDataID, 0, 'area_scan_division', StartCamPar)。

第三步,描述标定板,,这里标定板名称CaltabName有两种途径获取,使用算子set_calib_data_calib_object (CalibDataID, 0,CaltabName)。

一种途径是直接调用Halcon自带的描述文件(.descr),另一种是通过算子gen_caltab自制标定板,产生描述文件。

标定板描述文件中的标定板信息必须与标定过程中使用的标定板规格、尺寸一致。

第四步,开始标定。

其中又分为两部分,一是找到标定板,二是找到标定点及其位置。

使用算子为find_caltab (Image, Caltab, CaltabName, SizeGauss,MarkThresh, MinDiamMarks)和find_marks_and_pose (Image, Caltab,CaltabName, StartCamPar, StartThresh, Delta Thresh, MinThresh, Alpha,MinContLength, MaxDiamMarks, RCoord, CCoord, StartPose)。

halcon九点标定例程 -回复

halcon九点标定例程 -回复

halcon九点标定例程-回复Halcon九点标定例程是一种常用的机器视觉算法,用于自动化系统中对相机进行标定。

相机标定是指确定相机内部参数和外部参数的过程,而九点标定法是一种简单且有效的相机标定算法。

本文将以九点标定例程为主题,一步一步回答相关问题,并解释其原理和应用。

第一步:引言和背景知识介绍(200-250字)相机标定在机器视觉系统中扮演着重要角色,可以提供准确的图像测量和三维重建结果。

Halcon是一款流行的机器视觉软件,提供了丰富的相机标定工具和算法。

九点标定法是Halcon中一种常用的相机标定算法,其原理基于相机的投影模型和校准板上已知的特征点。

通过测量这些已知特征点在图像中的位置,我们可以计算相机的内部参数(例如焦距、主点等)和外部参数(例如相机的旋转和平移)。

本文将详细介绍Halcon九点标定例程,并给出相应的代码示例。

第二步:九点标定原理简述(300-350字)九点标定法基于一个简单的投影模型,该模型假设相机内部参数和外部参数对于所有图像均保持不变。

在校准板上标记九个已知的特征点,例如角点或圆心。

当我们用相机拍摄校准板时,这些特征点在图像上会形成相应的图案。

利用这些已知的特征点和其在图像中的位置,我们可以推导出相机的内部参数和外部参数。

具体而言,根据相机拍摄的图像,我们可以提取出各个特征点的像素坐标。

通过将像素坐标转换为相机坐标系或世界坐标系中的坐标,我们可以建立像素坐标与相机坐标之间的对应关系。

然后,利用这些对应关系,我们可以计算出相机的内部参数和外部参数。

第三步:九点标定例程的步骤介绍(400-450字)Halcon九点标定例程的主要步骤如下:1. 准备一块校准板,并在其上标记九个已知特征点。

这些特征点可以是标定板的角点或圆心。

2. 使用Halcon的图像采集工具捕获多张校准板的图像。

3. 对每一张图像,使用Halcon的图像处理工具提取出标定板上已知特征点的像素坐标。

4. 构建像素坐标和相机坐标之间的对应关系。

Halcon 摄像机标定流程

Halcon 摄像机标定流程

使用halcon相机标定初始值确定富士伺服富士伺服初始参数是0.0195,注意halcon里单位是m k是畸变系数,可以初始为0 sx和sy是相邻像元的水平和垂直距离,1/4"可以查得分别宽和高尺寸是3.2和2.4mm,用320×240去除,得到sx和sy分别是0.01mm,那么应该初始为sx=1.0e-005和sy=1.0e-005,Cx和Cy分别是图像中心点行和列坐标,可以初始化为160和120,最后两个参数是ImageWidth和ImageHeight直接就用320和240。

Halcon 摄像机标定流程摄像机分两种,一种是面扫描摄像机(Area Scan Camera),一种是线扫描摄像机(Line Scan Camera)。

准确来说,叫摄像机系统比较正确。

所谓的面扫描摄像系统是指可以通过单纯曝光取得面积影像,而线扫描摄像机,必须利用运动速度才能取得影像。

两种不同的摄像系统由于成像的过程有区别,所以标定的过程也有区别,这里仅讨论面扫描摄像系统。

流程如下:1、初始摄像机参数:startCamPar:=[f,k,Sx,Sy,Cx,Cy,NumCol,NumRow]f 焦距k 初始为0.0Sx 两个相邻像素点的水平距离Sy 两个相邻像素点的垂直距离Cx、Cy 图像中心点的位置NumCol NumRow图像长和宽2、caltab_points读取标定板描述文件里面描述的点到X[],Y[],z[],描述文件由gen_caltab生成。

3、fin_caltab找到标定板的位置4、find_marks_and_pose 输出标定点的位置和外参startpose5、camera_calibration输出内参和所有外部参数到第五步时,工作已经完成了一半,计算出各个参数后可以用map_image来还原形变的图像或者用坐标转换参数将坐标转换到世界坐标中。

halcon九点及旋转标定流程

halcon九点及旋转标定流程

halcon九点及旋转标定流程Halcon, a leading machine vision software, provides users with robust calibration tools for various types of vision systems. Halcon 9-point calibration in particular, is a crucial process that ensures accurate measurements and reliable performance of the vision system. 从各种视觉系统的角度来看,Halcon 9点校准是关键的过程,确保视觉系统的准确测量和可靠性性能。

It involves identifying the intrinsic parameters of the camera, such as focal length and lens distortion, and the extrinsic parameters, which define the camera's position and orientation in space. 这包括识别相机的固有参数,如焦距和镜头畸变,以及外部参数,这些参数定义了相机在空间中的位置和方向。

The 9-point calibration process is essential for eliminating distortions and errors in the captured images, thereby increasing the accuracy of measurements and analyses in the vision system. 9点校准过程对于消除捕获图像中的失真和误差至关重要,从而提高了视觉系统中的测量和分析的准确性。

基于HALCON软件的摄像机标定

基于HALCON软件的摄像机标定

基于HALCON软件的摄像机标定HALCON是一种非常强大的计算机视觉软件,可以用于许多应用领域,包括自动化、机器视觉、医学成像等。

在这些不同的领域,HALCON用户需要对摄像机进行标定,以便准确地测量和分析图像。

在本文中,我们将探讨如何使用HALCON进行摄像机标定。

摄像机标定的基本原理摄像机标定是计算机视觉中的一个重要过程。

在这个过程中,我们需要找到摄像机内部的一些参数,以便能够准确地测量对象的大小、位置和方向。

这些参数包括内部参数和外部参数。

内部参数包括焦距、畸变和像素距离等,这些参数决定了光学系统如何将世界坐标系中的点映射到图像平面上。

外部参数包括摄像机的位置和朝向,这些参数决定了摄像机如何拍摄场景。

因此,摄像机标定的目标就是确定这些参数。

摄像机标定的步骤摄像机标定通常涉及到摄像机的内部参数和外部参数,因此标定的步骤通常包括两个部分。

第一步是内部参数标定,我们需要用一些已知的三维坐标对摄像机的成像进行测量,得到这些坐标在图像中的投影。

这些点的坐标通常以像素为单位,我们可以使用极线几何或者张正友标定法等方法来求解内部参数。

第二步是外部参数标定,我们需要知道摄像机对于目标的位置和朝向。

通常我们使用标定板或者其他点来测量这些参数。

标定板通常是一个具有已知格子的图案,我们可以测量这些格子在图像中的位置,然后使用PnP算法和非线性优化等数学方法计算摄像机的位置和朝向。

HALCON摄像机标定步骤和代码接下来我们将介绍如何使用HALCON进行摄像机标定。

首先我们需要准备一些标定板或者其他特殊图案。

这些标定板通常由黑白相间的正方形组成,我们需要利用这些正方形来求解内部参数和外部参数。

1. 导入图像首先,我们需要使用HALCON导入摄像机标定所需的图像。

通常我们需要拍摄一系列的标定板图像,这些图像应该包括各种不同的摄像机角度和位置。

这些图像将用于内部参数和外部参数的标定过程。

通常在导入图像之前,需要对图像进行预处理,例如去除噪声和平滑化处理。

Halcon标定文件的生成及标定板规格

Halcon标定文件的生成及标定板规格

Halcon标定文件的生成Halcon标定文件的生成图一Halcon标定文件的生成,需要有以下几个步骤:1.创立一个标定数据模板,由create_calib_data算来完成。

2.指定相机的类型,初始化相机部参数,由set_calib_data_cam_param算子来完成。

3.指定标定板的描述文件,由set_calib_data_calib_object算子完成。

4.收集观察数据,有算子set_calib_data_observ_points完成。

也就是收集标定板上圆点的中心坐标,跟各个校正板的位置姿态。

5.配置校正过程。

由算子set_calib_data完成。

6.将数据整合进展标定计算。

calibrate_cameras7.获得标定参数。

get_calib_data8.记录标定参数,write_cam_parStartCamPar := [0.016, 0, 0.0000074, 0.0000074, 326, 247, 652, 494]解释一下这个数组的意思。

面阵相机有14或18个参数〔根据想相机的畸变模式〕,对于线阵相机有17个参数。

这些参数可以分开为部相机参数、外部相机参数。

面阵相机〔division模式〕:Focus〔焦距〕:远焦镜头镜头焦距的长度Kappa:扭曲系数Sx,Sy:两像素间距Cx,Cy:中心点坐标Whith,Height:图像的宽高面阵相机〔polynomia模式〕:Focus〔焦距〕:远焦镜头镜头焦距的长度K1, K2, K3, P1,P2:扭曲系数Sx,Sy:两像素间距Cx,Cy:中心点坐标Whith,Height:图像的宽高线阵相机不做具体介绍Halcon标定板规格2011-12-23 12:5668人阅读评论(1)收藏举报图一:30*30 规格的标定板的规格黑色圆点行数:7黑色圆点列数:7外边框长度:30mm*30mm边框长度:28.125mm*28.125mm 即:黑色边框线宽为一个圆点半径〔0.9375〕黑色圆点半径:0.9375mm圆点中心间距: 3.75mm裁剪宽度:30.75mm*30.75mm 即:由黑色边框向外延伸0.375mm边角:由黑色外边框向缩进一个中心边距的长度40*40 规格的标定板的规格黑色圆点行数:7黑色圆点列数:7外边框长度:40mm*40mm边框长度:37.5mm*37.5mm 即:黑色边框线宽为一个圆点半径〔0.125〕黑色圆点半径:0.125mm圆点中心间距:5mm裁剪宽度:21mm*21mm 即:由黑色边框向外延伸0.5mm边角:由黑色外边框向缩进一个中心边距的长度50*50 规格的标定板的规格黑色圆点行数:7黑色圆点列数:7外边框长度:50mm*50mm边框长度:46.875mm*46.875mm 即:黑色边框线宽为一个圆点半径〔1.5625〕黑色圆点半径: 1.5625mm圆点中心间距: 6.25mm裁剪宽度:51.25mm*51.25mm 即:由黑色边框向外延伸0.625mm边角:由黑色外边框向缩进一个中心边距的长度60*60 规格的标定板的规格黑色圆点行数:7黑色圆点列数:7外边框长度:60mm*60mm边框长度:56.25mm*56.25mm 即:黑色边框线宽为一个圆点半径〔1.875〕黑色圆点半径: 1.875mm圆点中心间距:7.5mm裁剪宽度:61.5mm*61.5mm 即:由黑色边框向外延伸0.75mm边角:由黑色外边框向缩进一个中心边距的长度Halcon如何制作标定板分类:Halcon2011-12-23 12:51151人阅读评论(2)收藏举报图1上图即为我自行制作的标定板的图样。

halcon单相机标定详细说明

halcon单相机标定详细说明

相机标定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 是世界坐标系原点与摄相机坐标系原点之间的差值。

halcon不规则点的标定

halcon不规则点的标定

halcon不规则点的标定1. 引言在计算机视觉领域,相机标定是一个常见且关键的问题。

在实际应用中,我们常常需要准确地计算出图片中的物体在三维空间中的位置和姿态信息。

然而,由于相机镜头的畸变以及多种误差的存在,仅仅依靠单张图片是无法准确还原物体的真实位置和姿态的。

为了解决这个问题,我们需要对相机进行标定。

在本文中,我将着重讨论一种特殊情况下的相机标定问题,即halcon不规则点的标定。

2. 概述不规则点标定是指使用不规则形状的标定板进行相机标定的一种方法。

相比于常规的纸质标定板,不规则点标定板更加有利于提升标定的准确性和鲁棒性。

halcon是一个强大的机器视觉库,提供了不规则点标定的相关功能。

3. 不规则点标定的原理不规则点标定的原理基于多视角几何理论和标定板的形状信息。

不规则点标定板通常是由一些特殊设计的点组成的,这些点通常具有不同的形状和颜色。

在使用halcon进行不规则点标定时,我们需要将标定板放置在不同的位置和姿态下,通过拍摄多张图像并提取出标定板上的点的坐标信息。

通过这些坐标信息,可以利用最小二乘法或其他标定算法计算出相机的内外参数。

4. halcon不规则点标定的步骤下面是halcon不规则点标定的基本步骤:- 步骤一:选择合适的不规则点标定板,该标定板应该具有一定的形状多样性和不规则性。

- 步骤二:在不同位置和姿态下,使用相机拍摄不同角度的图像,保证标定板占据图像的足够大的比例。

- 步骤三:使用halcon提供的相关函数,从每张图像中提取出标定板上各个点的坐标信息。

- 步骤四:根据每个点在三维世界坐标系中的实际坐标和图像中的像素坐标,使用标定算法计算出相机的内外参数。

- 步骤五:利用得到的内外参数,对其他图像进行校正和测量,得到准确的三维空间位置和姿态。

5. halcon不规则点标定的优势相较于传统的纸质标定板,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 黑色圆点直径与两圆点中心距离的比值。

相关文档
最新文档