机器视觉HALCON-机器视觉标定和测量

本文介绍了使用HALCON进行机器视觉标定和测量的方法,包括设计任务、总体方案和各功能模块。通过标定30*30mm的标准标定板,对直尺和物料块进行测量,分析了测量结果的误差和精度。实验结果显示,直尺测量精度提升,但物料块测量仍有误差,主要由光源、设备水平和亚克力板变形等因素影响。
摘要由CSDN通过智能技术生成

一、设计任务

摄像机标定要求自制标定板,使用网络摄像机或手机摄像头进行标定。将标定的摄像机内参和外参进行保存。设计测量方案,使用标定过的摄像机对包含图像能识别的垂直边缘的物品(直尺,画直线的纸张等),进行距离或边长的测量。标定过程和测量过程,均需要保持摄像机与测量平面之间的距离固定,物品高度不能过高,否则影响测量结果。给出设计的中间过程和截图以及最终测量结果,并对测量结果进行误差计算和分析。

二、总体方案

2.1 测量设备设计

根据设计任务,选择如图1所示的USB相机进行相机的标定和实物的测量,相机固定在标定板上方,垂直照射标定板获得视域的图像。所测的物品包括直尺一把和激光加工的物料块一个,由于从上方照射金属物料块会形成反光,造成局部的阈值直方图错误,影响后来dark to light和light to dark的识别错误,故选择底部打光,使用12V的灯条接稳压源从下方打光,透过亚克力板(这里要使用带塑料膜的亚克力板,如果不用膜的话相机入光太多亮度不够,如果使用白纸的话由于白纸密度不均匀,会产生很多的噪声,需要进行平滑处理,但是效果比较差)照射被测物体,可以实现很好的照射效果以及物料和周围的对比,有效地提高测量的精度。

1  标定和测量设备实物图

本次测量选择30*30mm的标准标定板进行标定,其参数为:黑色原点:7*7;边框长度:30*30mm;内边框长度:28.125mm*28.125mm;黑色原点半径:0.9375mm;原点中心间距:3.75mm;裁剪宽度:30.75*30.75mm。在Halcon中用gen_caltab(::XNum,YNum,MarkDist,DiameterRatio,CalTabDescrFile,CalTabPSFile:)算子来制作标定板,生成的.descr文件为标定板描述文件,.ps文件为标定板图形文件,可以用photoshop打开,要用分辨率*10打开,否则黑色原点是模糊的,Halcon识别不到标定板。

2.2 测量程序设计

在获得USB相机采集后的图像,选取8-10张导入到catlab的文件中,并进行与程序匹配的命名。然后依照图2进行标定。

 

 

 

 

 

 

 

 

 

2  标定流程图

标定完成后对图像进行测量,导入被测物体采集的图像,具体的采集过程如图3所示。

 

 

 

 

 

 

 

 

 

 

 

 

3  测量流程图

    使用image_points_to_world_plane命令是因为前面有set_origin_pose (Pose, 0, 0,0, Pose)设置了初始姿态,这里要将空间中的点转为平面上的点进行处理。

三、各功能模块设计及结果图

    本次设计中共使用了两种被测物体,直尺的测量比较简单,物料块的测量较为复杂。本节中将介绍两个测量方案的实施。本设计在原有的基础上对例程进行了一定的优化。

3.1 直尺的测量

ImgPath := '3d_machine_vision/calib4/'
read_image(Sample,ImgPath + 'calib_' + '01')
get_image_size(Sample,SampleWidth,SampleHeight)
dev_close_window ()
dev_open_window (0, 0, SampleWidth/4, SampleHeight/4, 'black', WindowHandle)
▶这里进行了相机初始值和标定板的设置。
 

 

NumImages := 8

for I := 1 to NumImages by 1

read_image (Image, ImgPath + 'calib_' + I$'02d')

dev_display (Image)

find_calib_object (Image, CalibDataID, 0, 0, I, [], [])

get_calib_data_observ_contours (Caltab, CalibDataID, 'caltab', 0, 0, I)

dev_set_color ('green')

dev_display (Caltab)

Endfor

这里进行多张图的标定,如图4所示,目的是修整相机的内参,获得相机的外参,容易发生两个问题,第一个错误代码是can’t find feature找不到标定板,这个有可能是PS没有高分辨率打开,标定板模糊精度低

  • 7
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值