当前位置:文档之家› 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所示的标定板参数设置。

图3中可设置CalPlateDescr, CalPlatePSFile 文件保存目录。

图 3 gen_caltab算子
完成后最好将'caltab.descr'拷贝到C:\Program Files\MVTec\HALCON-18.05-Progress\calib文件下,以方便后面调用。

1.2相机参数标定
此处通过HALCON标定助手标定。

标定助手打开如下:
图 4 标定助手
标定参数设置如下。

描述文件是第一步编制的标定板描述文件,像元宽高可查相机参数,焦距为镜头参数。

图 5 标定参数设置
此处通过加载的方式采用采集好的图像标定,没有实时采集。

可能会出现提取标志点失败的问题,可调整参数采集尝试。

(尝试多次若发现始终错误,可回到上一步查一下标定板描述文件有没有调用错误!!!若调用错误,没法识别或者我们标定的结果会出错!!!!)
图 6 标定图像加载1
图7 标定图像加载2
当图像加载完毕,“标定”按钮显示可选时即可点击标定。

此次我们用了11张图标定,但是按照理论最好12张以上。

有时会提示各种图像品质问题,此时尽量调整图像,实在调整不好可忽略。

下图为点击“标定”按钮后的标定结果,摄像机参数为相机内参,摄像机位姿为相机外参,此两个参数是可以单独保存。

图8下图为保存的两个相机内外参,“.cal”的为相机内参,“.dat”的为相机外参。

图8 标定结果
如下图所示,可以导出标定函数和标定数据。

标定函数是通过代码的形式将标定过程重复,一般也没有意义。

导出标定数据主要是两部分:CameraParameters(相机内参)和CameraPose(相机外参),如图9下。

图9 参数导出
以上标定工作完成。

2图像尺寸测量
2.1测量助手测量
打开测量助手。

图10 打开测量助手
此处以测量图像文件为示例说明。

选择要测量的图像,然后选择上一步标定生成的相机内参和相机外参文件。

图11 测量助手图像参数输入
之后,通过划线选取要测量的基线,包括圆弧基线和直线基线。

如图先绘制基线然后右键单击即可确认(基线一定不要太长,够用就行,因为太长会识别出很多干扰边缘)。

选择是否勾选“将边缘组成边缘对”。

再之后通过调整最小边缘幅度、平滑、ROI宽来选取要测量的边缘。

之后,查看测量结果。

相关主题