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

合集下载

Halcon标定板制作

Halcon标定板制作

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。

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单相机标定详细说明

XYZ
方向平移和旋转标定板,采集 18 张图像
图 9 Halcon 三维标定采集图像示例
3、Halcon 的二维标定,只在 XY 平面内平移和旋转标定板,采集 影响提高标定精度
18 张图像,减小 Z 的
实验数据:
方法一 方法二 方法三
图像坐标 X 方向像素物理距离 15.5618um 15.7575um
,
这就使得主点不一定在图像的帧存中心 ,故需要标定 ,,的值。
单个像元的高宽 ????,????,该数据可以在制造商提供的技术文档中查到,但是该数据不是 完全准确的。 单个像元的高宽理论上应该是相等的, 但是由于制造的误差, 两者不可能完全
相等,因此需要根据实际情况对其进行修正。
透镜的畸变失真系数前面讲到理想的透镜成像才满足线性关系
征点提取的算法了。 Halcon 的标定板如图 5 所示,黑色的边框中有阵列分布的原点,在边 框的左上角有个小三角用来确定其旋转的位置。
以 30*30mm 的标定板为例:
黑色原点: 7*7 边框长度: 30*30mm 内边框长度: 28.125mm*28.125mm 黑色原点半径: 0.9375mm 原点中心间距: 3.75mm 裁剪宽度: 30.75*30.75mm
针孔模型是理想透镜的成像模型,但是实际中相机的透镜不可能是理想的模型,透镜形
状的非理想特征造成像点会沿径向发生畸变。一个像点沿径向内缩叫负畸变
,或桶形畸变沿
径向外延叫正畸变 ,或枕形畸变。这种崎变相对于光轴严格对称的
,也是畸变的主要分量 [2] 。
( X u ,Y u)为矫正后的坐标, (X d ,Y d)是受到镜头失真影响而偏移的像平面坐标,径向 径向畸变模型:
标定的方法从原理上主要分为三大类:线性标定、非线性标定和二次标定。 使用的标定板有棋盘格也有原点阵列,如图 4 所示。

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標定⽂件的⽣成
Halcon標定⽂件的⽣成
圖⼀
Halcon標定⽂件的⽣成,需要有以下幾個步驟:
1.創建⼀個標定數據模板,由算來完成。

2.指定相機的類型,初始化相機內部參數,由算⼦來完成。

3.指定標定板的描述⽂件,由算⼦完成。

4.收集觀察數據,有算⼦完成。

也就是收集標定板上圓點的中⼼坐標,跟各個校正板的位置姿態。

5.配置校正過程。

由算⼦完成。

6.將數據整合進⾏標定計算。

calibrate_cameras
7.獲得標定參數。

get_calib_data
8.記錄標定參數,write_cam_par
StartCamPar := [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九点标定例程【原创版】目录1.介绍 halcon 九点标定例程2.详述 halcon 九点标定的具体步骤3.分析 halcon 九点标定的优点与不足4.总结 halcon 九点标定例程的重要性正文一、介绍 halcon 九点标定例程Halcon 九点标定例程是工业自动化领域中常用的一种标定方法,主要用于精确测量物体的尺寸和位置。

该方法通过在一个平面上选取九个特征点,然后利用特定的算法对这些特征点进行处理,从而实现对物体的精确测量。

这种方法具有操作简便、精度高、抗干扰能力强等优点,因此在工业生产中得到了广泛的应用。

二、详述 halcon 九点标定的具体步骤1.准备工作:首先,需要确保相机、光源等硬件设备已经正确安装并正常运行。

此外,还需要选择合适的标定板(通常为正方形,上面印有九个特征点),并将其放置在相机可拍摄的范围内。

2.拍摄照片:在确保标定板放置正确的情况下,启动相机拍摄包含九个特征点的照片。

需要注意的是,拍摄时需要保证光线充足、照片清晰,以确保后续处理效果。

3.特征点提取:通过图像处理软件(如 Halcon)对拍摄到的照片进行处理,提取出九个特征点。

这一步通常包括边缘检测、轮廓提取、特征点筛选等操作。

4.建立坐标系:在照片上选取一个点作为原点,然后利用相机的内参数(如焦距、像素尺寸等)和已知的物距(即特征点到相机的距离),计算出其他特征点在三维空间中的坐标。

这样,就建立了一个以原点为基准的二维坐标系。

5.计算相机参数:通过九点标定算法,计算出相机的外参数(如旋转矩阵、平移矩阵等),从而实现对物体在三维空间中的精确定位。

三、分析 halcon 九点标定的优点与不足1.优点:(1)操作简便:九点标定方法所需设备和操作步骤较为简单,易于上手。

(2)精度高:该方法利用多个特征点进行标定,提高了测量的精度和可靠性。

(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标定详解

*创建标定板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标定方法图文模板

成像平面上的投影点(点q)的变化过程
上图是将相机平面移至针孔与目标物体之间后的模型示意 图,描述的是在这个移动过程中,成像平面上的投影点(点q) 的变化情况。
根据空间一点成像到图像平面上的路线,先由世界坐标系变 换到相机坐标系,然后又由相机坐标系变换到成像坐标系,但 是这个过程有畸变,需要进行变换处理,再由成像平面坐标系 HA变LC换ON到编图程像基像础素与坐工标程系应,用中间大致分为以下几个步骤:
的相机成像模型。在相机的 成像模型中,包含有几个坐 标系:世界坐标系、相机坐 标系、图像坐标系。相机成 像过程的数学模型就是目标 点在这几个坐标系中的转化 过程。
HALCON编程基础与工程应用
三种坐标系定义
在计算机视觉中常采用右手定则来定义上图中的坐标系。图中
存在三个不同层次坐标系,以下是对这三种坐标系的定义。 1.世界坐标系(Xw,Yw,Zw) 就是现实坐标系,或全局坐标系,它是客观世界的绝对坐标, 由用户任意定义的三维空间坐标系,一般的3D场景用的就是这 种坐标(HALCON标定中以标定板为参考坐标系基准)。 2.相机坐标系(Xc,Yc) 以小孔相机模型针孔平面上的聚焦中心为原点,以相机光轴为 Zc构成三维坐标系,其中Xc、Yc与成像平面坐标系平行。 3.图像坐标系:分为成像平面坐标系和图像像素坐标系。 成像平面坐标系(x,y):其原点为透镜光轴与成像平面交点, X、Y轴分别平行于相机坐标系Xc轴和Yc轴,是平面直角坐标系, 单位mm。 图像像素坐标系(u,v):固定在图像上的以像素为单位的平 面直角坐标系,其原点位于图像左上角,其横纵两轴(对于数 HA字LCO图N编像程,基是础行与和工列程)应分用别平行于成像平面坐标系的横、纵坐标
图像像素坐标系的转化关系
HALCON编程基础与工程应用

halcon 几种标记形式

halcon 几种标记形式

halcon 几种标记形式
在Halcon机器视觉软件中,用于相机标定的标记形式主要包括以下几种:
1. 矩形排列标志板(矩阵标定板):
这种类型的标定板包含一系列均匀分布的矩形或圆形标记点。

这些标记点通常按照网格状排列,并且每个标记点的位置精确已知。

通过拍摄不同角度和位置的图像来计算相机的内参(焦距、主点坐标、畸变系数等)和外参(旋转和平移矩阵)。

2. 六角排列标志板(蜂窝标定板):
六角排列的标定板由一系列六边形布局的标记组成,这种设计可以提供更密集的特征点分布,有助于提高标定精度和鲁棒性。

3. 棋盘格图案:
类似于OpenCV中的标准做法,Halcon也支持使用棋盘格作为标定板,其中包含交替的黑色和白色方格。

棋盘格是一种常见且易于制作的标定工具,因其规律性强而被广泛用于相机校准。

4. 自定义模式:
用户可以根据需要创建自定义的标记图案,例如特定尺寸和形状的圆点、正方形或其他几何图形,只要能够为Halcon算法提供足够的约束条件来进行参数估计即可。

5. 九点法:
虽然未明确提到九点标定板是Halcon的标准选项,但在手眼标定中可能会提及到“九点法”,这可能是指通过9个特定的三维空间点及其对应的图像像素坐标进行标定的方法。

以上各种标记形式都可以用在不同的标定方法中,包括但不限于九点标定法、自标定法以及利用Halcon内置的相机标定算子如`camera_calibration`等进行标定计算。

基于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进行单目标定楼主#更多•只看楼主倒序阅读发布于: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是一种非常强大的计算机视觉软件,可以用于许多应用领域,包括自动化、机器视觉、医学成像等。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

halcon9点标定例程

halcon9点标定例程

Halcon 9点标定例程简介Halcon是一款功能强大的机器视觉软件,广泛应用于工业自动化、机器人视觉、医疗影像等领域。

其中,点标定是Halcon中常用的标定方法之一。

本文将介绍Halcon中的9点标定例程,包括基本原理、步骤、代码示例以及注意事项。

基本原理点标定是通过在图像中选取多个已知世界坐标和对应的像素坐标,建立世界坐标和像素坐标之间的转换关系。

这样,在后续的图像处理中,就可以通过已知的世界坐标计算出像素坐标,或者通过已知的像素坐标计算出世界坐标。

Halcon的9点标定例程是一种基于透视变换的标定方法。

透视变换是一种将三维空间中的点映射到二维平面上的变换,可以用来描述相机成像的过程。

通过选取多个已知世界坐标和对应的像素坐标,可以计算出透视变换的参数,从而建立世界坐标和像素坐标之间的转换关系。

步骤1.准备标定板:选择一个平面上的标定板,标定板上有多个已知世界坐标的点,一般选择9个点,可以是方形或圆形。

2.拍摄图像:使用相机拍摄多张含有标定板的图像,要求标定板在不同位置和姿态下的图像都有。

3.提取角点:对每张图像进行角点提取,即找到标定板上的角点像素坐标。

4.建立世界坐标和像素坐标的对应关系:将每个角点的像素坐标与其对应的已知世界坐标进行匹配,建立世界坐标和像素坐标的对应关系。

5.计算透视变换参数:使用Halcon提供的函数,根据已知的世界坐标和像素坐标的对应关系,计算出透视变换的参数。

6.验证标定结果:使用标定结果对其他图像进行校正,计算校正后的像素坐标与实际世界坐标的误差,以验证标定结果的准确性。

代码示例下面是一个简单的Halcon代码示例,演示了如何进行9点标定:# 读取图像read_image(Image, 'image.jpg')# 提取角点find_calib_object(Image, CalibModelID, 9, 1, 0.02, 6, 0, 'all', 'all')# 建立世界坐标和像素坐标的对应关系create_calib_data('calib_data', CalibModelID, [], [])# 计算透视变换参数calibrate_cameras('calib_data', [], [], 'calib_param', Error)# 验证标定结果gen_cross_contour_xld(Cross, 100, 100, 10, 0)project_cross_contour_xld(Cross, CrossProject, 'calib_param')dev_display(Image)dev_display(CrossProject)注意事项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 标定板制作方法
•只看楼主倒序阅读发布于: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不规则点的标定

halcon不规则点的标定

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5. 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:图像的宽高线阵相机不做具体介绍。

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

MarkDist 的距离。

两个就近黑色圆点中心之间Halcon 学习(十八)如何制作标定板
下面我具体介绍一下,如何制作halcon 的标准标定板方法一:用halcon 软件自动生成的.ps 文件来制作标定板。

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

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

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

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
黑色圆点列数: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 7
Y 方向标志圆点的数量
# Number of marks in x-dimension (columns) c 7
X 方向标志圆点的数量。

# offset
of coordinate system in z-dimension [meter] (optional):
z 0
Z 坐标偏移
# Rectangular border (rim and black frame) of calibration plate 标定板的矩形边框(边缘和黑色边框)
# rim
of the calibration plate (min x, max y, max x, min y) [meter]: o -0.0205 0.0205 0.0205 -0.0205 标定板的剪切边缘【-0.0205 0.0205 0.0205 -0.0205 】(以标定板中心为坐标圆点)
# outer
border of the black frame (min x, max y, max x, min y) [meter]: i -0.02 0.02 0.02 -0.02
黑色边框的外边缘【-0.02 0.02 0.02 -0.02 】
# triangular
corner mark given by two corner points (x,y, x,y) [meter]
# (optional):
t -0.02 -0.015 -0.015 -0.02
三角形标志【-0.02 -0.015 -0.015 -0.02 】
# width
of the black frame [meter]:
w 0.00125
黑色边框线的宽度:0.00125 米。

# calibration marks: x y
radius [meter]
一下是各个矫正板黑色圆点在标定板上的坐标(共7*7 个)# calibration marks at y = -0.015 m
-0.015 -0.015 0.00125
-0.01 -0.015 0.00125
-0.005 -0.015 0.00125
0 -0.015 0.00125
0.5 -0.015 0.00125
0.01 -0.015 0.00125
0.015 -0.015 0.00125
# calibration marks at y = -0.01 m -0.015 -0.01 0.00125
-0.01 -0.01 0.00125
-0.005 -0.01 0.00125
0 -0.01 0.00125
0.005 -0.01 0.00125
0.01 -0.1 0.00125
0.015 -0.01 0.00125
# calibration marks at y = -0.005 m -0.015 -0.005 0.00125
-0.01 -0.005 0.00125
-0.005 -0.005 0.00125
0 -0.005 0.00125
0.005 -0.005 0.00125
0.01 -0.005 0.00125
0.015 -0.005 0.00125
# calibration marks at y = 0 m
-0.015 0 0.00125
-0.01 0 0.00125
-0.005 0 0.00125
0 0 0.00125
0.005 0 0.00125
0.01 0 0.00125
0.015 0 0.00125
# calibration marks at y = 0.005 m -0.015 0.005 0.00125
-0.01 0.005 0.00125
0 0.005 0.00125
0.005 0.005 0.00125
0.01 0.005 0.00125
0.015 0.005 0.00125
# calibration marks at y = 0.01 m -0.015 0.01 0.00125
-0.01 0.01 0.00125
-0.005 0.01 0.00125
0 0.01 0.00125
0.01 0.01 0.00125
0.015 0.01 0.00125
# calibration marks at y = 0.015 m -0.015 0.015 0.00125
-0.01 0.015 0.00125
-0.005 0.015 0.00125
0 0.015 0.00125
0.5 0.015 0.00125
0.01 0.015 0.00125。

相关文档
最新文档