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标定文件资料地生成及标定板规格

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:56 68人阅读评论(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如何制作标定板分类:Halcon 2011-12-23 12:51 151人阅读评论(2) 收藏举报图1上图即为我自行制作的标定板的图样。

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自标定方法Halcon自标定方法Halcon是一种常用的机器视觉软件,用于开发和实现各种图像处理和机器视觉应用。

在机器视觉领域,相机的标定是非常重要的一步,它能够精确地确定相机的内部参数和外部参数,从而提高图像处理的精度和准确性。

Halcon提供了自标定方法,使相机的标定过程更加简便和高效。

自标定方法基于相机的特征点,通过在图像中检测和匹配特征点来确定相机的内部参数和外部参数。

下面将详细介绍Halcon的自标定方法。

1. 特征点提取在自标定过程中,首先需要从图像中提取特征点。

Halcon提供了多种特征点提取算法,如Harris角点检测、SIFT算法等。

根据实际应用场景的需求,选择合适的算法进行特征点提取。

2. 特征点匹配特征点提取后,需要进行特征点的匹配。

Halcon提供了多种特征点匹配算法,如基于描述子的匹配算法、基于相似性变换的匹配算法等。

通过计算特征点之间的相似性,确定它们之间的对应关系。

3. 相机标定特征点匹配完成后,即可进行相机的标定。

Halcon提供了基于特征点的标定方法,通过求解相机的内部参数和外部参数,得到相机的准确标定结果。

标定过程中需要提供已知的标定板,通过测量标定板上的特征点坐标和图像中对应特征点的像素坐标,计算相机的内部参数和外部参数。

4. 标定结果评估标定过程完成后,需要对标定结果进行评估。

Halcon提供了多种评估方法,如重投影误差、畸变系数等。

通过对比实际观测值和标定结果的差异,评估标定的准确性和精度。

5. 标定结果应用标定结果可以应用于各种机器视觉应用中,如图像校正、目标检测和跟踪等。

通过应用标定结果,可以提高图像处理和机器视觉算法的准确性和稳定性。

总结:Halcon的自标定方法是一种简便高效的相机标定方法,通过特征点提取和匹配,求解相机的内部参数和外部参数,从而实现对相机的准确标定。

标定结果可以应用于各种机器视觉应用中,提高图像处理和算法的准确性和稳定性。

Halcon单相机标定板标定

Halcon单相机标定板标定

Halcon单相机标定板标定⾸先得到相机的内参gen_cam_par_area_scan_division (0.012, 0, 0.00000375, 0.00000375, 640, 480, 1280, 960, StartCamPar)普通的畸变:’area_scan_division’ [’area_scan_division’, Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight⾼精度畸变(多项式⼦):’area_scan_polynomial’ [’area_scan_polynomial’, Focus, K1, K2, K3, P1, P2, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight然后建⽴标定对象:create_calib_data ('calibration_object', 1, 1, CalibDataID)//建⽴标定对象set_calib_data_cam_param (CalibDataID, 0, [], StartCamPar)//设置相机的参数set_calib_data_calib_object (CalibDataID, 0, 'calplate_80mm.cpd')//设置标定板的⽂件//查找标定板NumImages := 7for I := 1 to NumImages by 1read_image (Image, ImgPath + 'calib_image_' + I$'02d')dev_display (Image)find_calib_object (Image, CalibDataID, 0, 0, I, [], [])get_calib_data_observ_contours (Caltab, CalibDataID, 'caltab', 0, 0, I)get_calib_data_observ_points (CalibDataID, 0, 0, I, Row, Column, Index, StartPose)//获取标定板的位姿dev_set_color ('green')dev_display (Caltab)dev_set_color ('red')disp_circle (WindowHandle, Row, Column, gen_tuple_const(|Row|,1.5))endfor//纠正实际世界坐标位姿set_origin_pose (Pose, 0, 0, 0.002, Pose)//由于标定板的厚度是0.02,所以Z平移到相机坐标需要加上0.02//标定相机calibrate_cameras (CalibDataID, Errors)//标定相机get_calib_data (CalibDataID, 'camera', 0, 'params', CamParam)//得到相机标定后的相机内参,这个内参包含了畸变参数get_calib_data (CalibDataID, 'calib_obj_pose', [0,1], 'pose', Pose)//以第⼀张图作为参考平⾯,得到参考平⾯的坐标位姿//坐标转换image_points_to_world_plane (CamParam, Pose, Row, Col, 'mm', X1, Y1)//将相机平⾯映射到实际坐标位置位姿:描述是世界坐标转换到相机坐标的旋转平移参数,也就是该点在相机坐标系下的位姿。

Halcon学习(十八)如何制作标定板

Halcon学习(十八)如何制作标定板

Halcon学习(十八)如何制作标定板下面我具体介绍一下,如何制作halcon的标准标定板方法一:用halcon软件自动生成的.ps文件来制作标定板。

这个也是最简单有效的方法。

打开halcon的HDevelop软件,调用算子:gen_caltab( : :XNum,YNum,MarkDist,DiameterRatio,CalTabDescrFile,CalTa bPSFile :)XNum 每行黑色标志圆点的数量。

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

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

DiameterRatio 黑色圆点半径与圆点中心距离的比值。

CalTabDescrFile 标定板描述文件的文件路径(.descr)。

CalTabPSFile 标定板图像文件的文件路径(.ps),如图1然后复位(F2),点击运行(F5)通过软件Gsview打开,按1:1比例打印,OK!备注一个30*30的标准标定板的halcon源代码。

gen_caltab(7,7,0.00375,0.5,'F:/halcon程序/gencaltab/30_30.descr','F:/halcon程序/gencaltab/40_40.ps')规格的标定板的规格黑色圆点行数:7黑色圆点列数:7外边框长度:30mm*30mm内边框长度:28.125mm*28.125mm 即:黑色边框线宽为一个圆点半径(0.9375)黑色圆点半径:0.9375mm圆点中心间距: 3.75mm裁剪宽度:30.75mm*30.75mm 即:由黑色边框向外延伸0.375mm边角:由黑色外边框向内缩进一个中心边距的长度方法二:用halcon软件自动生成的.descr文件来制作标定板。

打开halcon 的HDevelop软件,调用算子:gen_caltab生成一个.descr的文件,用写字板打开(注意要用写字板,记事本打开会有一些数据不可见,一般windowsXP在C:\ProgramFiles\Windows NT\Accessories就有写字板软件wordpad.exe)打开后的文件基本如下:以40*40为例:# Plate Description Version 2# HALCON Version 10.0-- Mon Dec 19 11:08:072011# Description of the standard calibrationplate 标准标定板的描述# used for the CCD camera calibration inHALCON# (generated bygen_caltab) (由)gen_caltab算子生成## 7 rows x 7columns 7行*7列# Width, height of calibration plate [meter]: 0.04, 0.04 标定板的宽和高:0.04米,0.04米# Distance between mark centers [meter]: 0.005标志圆点中心间距:0.005米# Number of marks in y-dimension (rows)r 7Y方向标志圆点的数量。

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进行单目标定楼主#更多•只看楼主倒序阅读发布于: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标定板

有的客户不是直接跟我们说他需要的标定板是多大的 规格的,他会说出他的一些参数,让我们跟他介绍或者是 推荐一款适合他的标定板,那么这个时候我们应该怎么推 荐呢?
首先问客户相机与检测标定物的视野是多大?
选取标定板的大小是按照视野的1/2和1/3或者2/3大小来 推选的,但是我们也是推荐,具体的还是要看客户自己的 软件
外形尺寸多少 ,厚度是多少,精度多少,数量是多少?如果 是线条的,我就要知道最小线宽是多少(越小的线宽价格 越高)我们能做的最小线宽是2um,但是我们对外的话还 是说6um,这样的话在我们生产的时候就好做很多,在厚 度上我们也有还几个规格,1mm 2mm 3mm 5mm
订做标定板的 都要提供图纸或者CAD,那样我们的技术就可 以不用花时间去帮客户画图纸了,但是对于halcon来说 只 要知道外形尺寸我们就可以给他绘制CAD了,或者客户提 供详细的参数 都是可以的
halcon标定板
Halcon是来自德国的一种图像处理软件在欧洲以及日本 的工业界,已经是公认的、具有最佳效果的一种图像处理 软件。
它源自学术界,有别于市面上一般的商用软件包,事实 上这一套软件是由一千多个各自独立的函数,以及底层的 数据管理核心构成。其中包含了各类滤波,色彩以及几何 、数学转换,型态学计算分析、校正,分类辨识。
陶瓷基底的标准板具有热膨胀系数小、强度 高、硬度高、耐磨性好、热传导率低、防 酸碱性好等特点,且其良好的表面漫反射 处理,解决了在应用过程中,前置光源情 况下玻璃材质标定板反光的难题,可更好 地识别标定板图案细节信息从而达到更高 的标定精度和测量精度。(陶瓷材料的标 定板精度是没有光学玻璃的标定板精度好 最大规格能做到300*300mm,我们能做到的 精度是5-10u,)
我们的精度是没有问题的,从来没有客户反映我们的精度有问题,所以 这点我们可以非常的放心推了

Halcon 标定板制作方法

Halcon 标定板制作方法

Halcon 标定板制作方法
•只看楼主倒序阅读发布于:2013-07-23 08:32
一、Halcon标定板标准文件制作
利用Halcon软件自制标定板。

程序命令:gen_caltab
该命令可以制作所需的标定板参数文件Caltab.descr和标定板图像文件Caltab.ps。

按确认后生成的命令gen_caltab (9, 9, 0.015, 0.5, 'caltab.descr', 'caltab.ps')
Caltab.ps文件可以用Photoshop打开。

图片如附录
图像尺寸的计算方式:按上述文件参数为标定板的点阵式9*9的,每个点之间的间距是
0.015米,原点直径与每个点之间距离的比值为0.5。

最后两个文件时输出,可以通过后面的文件夹符号来改变存储位置。

或者用./’caltab.descr’的方式存在当前目录下。

标定板黑边外延到黑边外延的距离计算式为:(Xnum+1)*MarkDist*1000
本文参数导出的标定板尺寸为(9+1)*0.015*1000=150mm 所以我们标定板为
150mm*150mm的。

但是算上白边的整个宽度为(Xnum+1)*MarkDist*1000*(1+0.0201)
图片:111.jpg。

Halcon学习(十八)如何制作标定板

Halcon学习(十八)如何制作标定板

Halcon学习(十八)如何制作标定板下面我具体介绍一下,如何制作halcon的标准标定板方法一:用halcon软件自动生成的.ps文件来制作标定板。

这个也是最简单有效的方法。

打开halcon 的HDevelop软件,调用算子:gen_caltab( : : XNum,YNum,MarkDist,DiameterRatio,CalTab DescrFile,CalTabPSFile : )XNum每行黑色标志圆点的数量。

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

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

DiameterRatio黑色圆点半径与圆点中心距离的比值。

CalTabDescrFile标定板描述文件的文件路径(.descr)。

CalTabPSFile标定板图像文件的文件路径(.ps),如图1然后复位(F2),点击运行(F5)通过软件Gsview打开,按1:1比例打印,OK!备注一个30*30的标准标定板的halcon源代码。

gen_caltab(7,7,0.00375,0.5,'F:/halcon程序/gencaltab/30_30.descr','F:/halcon程序/gencaltab/40_40.ps')规格的标定板的规格黑色圆点行数: 7黑色圆点列数: 7外边框长度: 30mm*30mm内边框长度: 28.125mm*28.125mm 即:黑色边框线宽为一个圆点半径(0.9375)黑色圆点半径: 0.9375mm圆点中心间距: 3.75mm裁剪宽度: 30.75mm*30.75mm 即:由黑色边框向外延伸0.375mm边角:由黑色外边框向内缩进一个中心边距的长度方法二:用halcon软件自动生成的.descr文件来制作标定板。

打开halcon 的HDevelop软件,调用算子:gen_caltab生成一个.descr的文件,用写字板打开(注意要用写字板,记事本打开会有一些数据不可见,一般windowsXP在C:\Program Files\Windows NT\Accessories就有写字板软件wordpad.exe)打开后的文件基本如下:以40*40为例:# Plate Description Version 2# HALCON Version 10.0 -- Mon Dec 19 11:08:07 2011# Description of the standard calibration plate 标准标定板的描述# used for the CCD camera calibration in HALCON# (generated by gen_caltab) (由)gen_caltab 算子生成### 7 rows x 7 columns 7行*7列# Width, height of calibration plate [meter]: 0.04, 0.04标定板的宽和高:0.04米,0.04米# Distance between mark centers [meter]: 0.005标志圆点中心间距:0.005米# Number of marks in y-dimension (rows)r 7Y方向标志圆点的数量。

Halcon学习(17)标定板的规格

Halcon学习(17)标定板的规格

Halcon学习(17)标定板的规格Halcon学习(十七)标定板的规格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不规则点的标定

halcon不规则点的标定

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5. halcon不规则点标定的优势相较于传统的纸质标定板,halcon不规则点标定具有以下几个优势:- 准确性更高:不规则点标定板能够提供更多的信息,从而提升标定的准确性。

halcon标定详解

halcon标定详解

*创建标定板gen_caltab(7,7,0.008,0.5,'48_48mm.descr','48_48mm.ps')*=======标定内参dev_close_window ()dev_open_window (0, 0, 652, 494, 'black', WindowHandle)dev_update_off ()dev_set_draw ('margin')dev_set_line_width (3)OpSystem := environment('OS')set_display_font (WindowHandle, 14, 'mono', 'true', 'false')*标定相机StartCamPar := [0.0,0.0,0.0000299,0.0000299,4896/2,3264/2,4896,3264] create_calib_data ('calibration_object', 1, 1, CalibDataID)set_calib_data_cam_param (CalibDataID, 0, 'area_scan_telecentric_divi sion', StartCamPar)set_calib_data_calib_object (CalibDataID, 0, '48_48mm.descr')* Note, we do not use the image from which the pose of the measuremen t plane can be derivedfor index := 1 to 13 by 1read_image (Image, '标定20/' + index + '.png')get_image_size(Image, Width, Height)dev_display (Image)find_calib_object (Image, CalibDataID, 0, 0, index, [], [])get_calib_data_observ_contours (Caltab, CalibDataID, 'caltab', 0, 0, index)dev_set_color ('green')dev_display (Caltab)endforcalibrate_cameras (CalibDataID, Error)get_calib_data (CalibDataID, 'camera', 0, 'params', CamParam)get_calib_data (CalibDataID, 'calib_obj_pose', [0,1], 'pose', PoseCal ib)*输出计算的相机内参write_cam_par (CamParam, 'camera_parameters.dat')Message:= '相机内参已经写入文件中'disp_message (WindowHandle, Message, 'window', 12, 12, 'red', 'false ')clear_calib_data (CalibDataID)stop()*=====标定外参dev_set_draw ('margin')dev_set_line_width (1)set_display_font (WindowHandle, 14, 'mono', 'true', 'false')*从文件中读取内参存储文件:camera_parameters.dattryread_cam_par ('camera_parameters.dat', CamParam)catch (Exception)stop ()endtry*开始计算open_file('data.csv','output', FileHandle)fwrite_string(FileHandle,'Dis_pix*0.0299204,Dis_m*1000,Distance') fnew_line (FileHandle)close_file(FileHandle)*选择一张作为标定作为最终标定位姿(任意一张都可以)index:=1read_image (Image,'标定20/'+index+'.png')dev_display (Image)CaltabName := '48_48mm.descr'create_calib_data ('calibration_object', 1, 1, CalibDataID)* Here, the final camera parameters are already known and can be used instead* of the starting values used in the program 'camera_calibration_inte rnal.hdev'set_calib_data_cam_param (CalibDataID, 0, 'area_scan_telecentric_divi sion', CamParam)set_calib_data_calib_object (CalibDataID, 0, CaltabName)find_calib_object (Image, CalibDataID, 0, 0, 1, [], [])get_calib_data_observ_contours (Caltab, CalibDataID, 'caltab', 0, 0, 1)get_calib_data_observ_points (CalibDataID, 0, 0, 1, RCoord, CCoord, I ndex, PoseForCalibrationPlate)dev_set_color ('green')dev_display (Caltab)dev_set_color ('red')disp_caltab (WindowHandle, CaltabName, CamParam, PoseForCalibrationPl ate, 1)dev_set_line_width (1)disp_circle (WindowHandle, RCoord, CCoord, gen_tuple_const(|RCoord|,1.5))* caltab_points (CaltabName, X, Y, Z)* calibrate_cameras (CalibDataID, Error)* To take the thickness of the calibration plate into account, the z-value* of the origin given by the camera pose has to be translated by the * thickness of the calibration plate.* Deactivate the following line if you do not want to add the correct ion.set_origin_pose (PoseForCalibrationPlate, 0, 0, 0, PoseCalib)* disp_continue_message (WindowHandle, 'black', 'true')* stop ()*像素距离distance_pp(RCoord[0],CCoord[0],RCoord[48],CCoord[48], Dis_pix)*像素直接转换mm然后计算pix2mm(RCoord, CCoord,CamParam[2],CamParam[3],newCol,newRow)distance_pp(newRow[0],newCol[0],newRow[48],newCol[48], Dis_m)*用同一个世界坐标系来计算image_points_to_world_plane(CamParam, PoseCalib,[RCoord[0],RCoord[4 8]], [CCoord[0],CCoord[48]], 'mm', X1, Y1)distance_pp(Y1[0],X1[0],Y1[1],X1[1],Distance)*输出计算结果比较open_file('data.csv','append', FileHandle)fwrite_string(FileHandle, Dis_pix*0.0299+','+Dis_m*1000+','+Distance+ '\n')close_file(FileHandle)Message:= '计算完毕'disp_message (WindowHandle, Message, 'window', 12, 12, 'red', 'false ')stop()。

HALCON编程及工程应用 第11章 HALCON标定方法

HALCON编程及工程应用 第11章 HALCON标定方法
(1)30*30 规定的标定板的规格(2)40*40 规定的标定板的规格 (3)50*50 规定的标定板的规格(4)60*60 规定的标定板的规格
以30*30 规定的标定板的规格为例: 黑色圆点行数:7 黑色圆点列数:7 外边框长度:30mm*30mm 内边框长度:28.125mm*28.125mm ,即黑色边框线
HALCON编程基础与工程应用
11.4 HALCON标定助手
1、标定注意事项 HALCON中的标定助手为图像处理提供了一种很简便的标定方式,不仅简 化了标定步骤,也省去了繁琐的编程过程,我们只需要采集到符合标定 标准的标定板图像,了解设备的参数信息,比如相机类型、标定板厚度 等。 (1)标定板材质选用玻璃或者陶瓷材质为最好; (2)光源尽量在标定板前方,在与相机相反的方向; (3)标定板采集图像尽量在12幅以上,数量越多,所得的参数就越精确; (4)为了保证参数的精确性,要保证标定板的四角全部在视野范围内。 主要是因为一般标定板的四角畸变量比较大,需要通过四角的畸变程度 获得准确的畸变系数; (5)要保证标定板的标志点灰度值与其背景灰度值的差值在100以上, 否则HALOCN会提示有品质问题。
HALCON编程基础与工程应用
从世界坐标系到相机坐标系
空间点Pw(Xw,Yw,Zw)转换到点 P(Xc,Yc,Zc):
P RPω
式中,R是旋转矩阵,T是平移向量。 每一个世界坐标的对象都可以通过旋转和平移变换到相机坐标
系上(旋转过程如下图)。将目标点旋转θ角度,等价于将坐标系 按相反的方向旋转θ角度。如下图所示,是二维坐标的旋转变换, 对于三维坐标而言,旋转中绕某一个轴旋转,原理与二维坐标旋转 相同。如果世界坐标分别绕 X、Y 和 Z轴旋转α、β、γ,那么旋

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

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

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

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

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

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

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

4,结果一栏。

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

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

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

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

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

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

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

Halcon标定板
什么是Halcon
Halcon是来自德国的一款图像处理软件,在世界范围内广泛使用的机器视觉软件。

是公认的、具有最佳效果的一种图像处理软件。

它源自学术界,有别于市面上一般的商用软件包,事实上这一套软件是由一千多个各自独立的函数,以及底层的数据管理核心构成。

其中包含了各类滤波,色彩以及几何、数学转换,型态学计算分析、校正,分类辨识。

halcon的应用范围几乎没有限制,涵盖医学,遥感探测,监控,到工业上的各类自动化检测。

促成了高科技业,电子业产能的大幅提升。

也是机器视觉用的最多的一种软件。

如何制作Halcon标定板?
以63*63mm的规格举例:
黑色圆点行数:7
黑色圆点列数:7
外边框长度:63mm*63mm
内边框长度:59.0625mm*59.0625mm
即:黑色边框线为一个圆点半径(3.9375)
黑色圆点半径: 3.9375mm
圆点中心间距:7.875mm
裁剪宽度63.875mm*63.875mm
即:由黑色边框向外延伸0.875mm
边角:由黑色外边框向内缩进一个中心边距的长度(7.875mm)
这个就是halcon标定描述文件生成的一个的标定板规格。

Halcon标定板的中心距就是外形尺寸
桂庆光电粟工135-49414687。

相关文档
最新文档