halcon第二十三讲:标定助手标定测量

24 篇文章 719 订阅 ¥9.90 ¥99.00
本文介绍了使用Halcon进行相机标定的过程,包括生成标定板、标定助手的操作、像素坐标到世界坐标的转换以及测量应用。在实际测量52mm圆齿轮直径时,标定后得出53.4278mm,存在一定误差,可能是由于标定板放置不精确导致。为减小误差,建议在标定图像时进行仿射变换,确保参考位姿与像素坐标系平行,或利用直尺辅助校准标定板位置。
摘要由CSDN通过智能技术生成

1.生成标定板 文件ps格式,可通过ps软件打印出来, 以及标定板的描述文件descr格式

gen_caltab (7, 7, 0.0125, 0.5, 'caltab.descr', 'caltab.ps')

2.打开标定助手进行标定:输入相机像素尺寸,焦距参数,加载描述文件,移动标定板到整个视野的不同地方,旋转不同的角度进行采集,采集到十张左右就差不多了,然后选择其中一张为参考位姿,即世界坐标系,最后标定。标定完最好在结果栏中勾选原点在图像角上,则世界坐标系和像素坐标系就重合了,此时像素和实际距离只是比例关系了。             

3.生成代码并插入代码 

*标定得到的相机参数
CameraParameters := [0.189115,87.4045,2.21885e-006,2.2e-006,2700.85,-118.133,2592,1944]
*相机在世界坐标系中的位姿
CameraPose := [-0.344824,0.0149449,10.9193,0.721803,4.27061,0.733757,0]
stop ()

4.像素坐标系转换为世界坐标系

*像素坐标系到世界坐标系转换(通过比例换算可知道每个像素长度实际代表多少毫米)
*第一个参数为相机参数,第二个参数为相机位姿,第五个参数为计量单位,一般选mm,即100个像素尺寸实际长为X个mm
image_points_to_world_plane (CameraParameters, CameraPose, 100, 100, 'mm', X, Y)

5.测量

*打开相机对待侧物体进行测量
open_framegrabber ('DahengCAM', 1, 1, 0, 0, 0, 0, 'interlaced', 8, 'gray', -1, 'false', 'HV-xx51', '1', 1, -1, AcqHandle)
grab_image_start (AcqHandle, -1)
wait_seconds (1)
grab_image_async (Image, AcqHandle, -1)
dev_display (Image)

threshold (Image, Regions, 166, 255)
connection (Regions, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 55908.3, 130688)
fill_up (SelectedRegions, RegionFillUp)
gen_contour_region_xld (RegionFillUp, Contours1, 'border')
fit_circle_contour_xld (Contours1, 'algebraic', -1, 0, 0, 3, 2, Row2, Column2, Radius1, StartPhi1, EndPhi1, PointOrder1)

*显示信息
dev_display (Image)
dev_set_draw ('margin')
disp_circle (3600, Row2, Column2, Radius1)
RealDiameter:=Radius1*2/(100/X)
disp_message (3600, '实际直径:'+RealDiameter+'mm', 'image', Row2, Column2, 'black', 'true')
stop()

 

 实际测量了一下该圆齿轮的直径大概在52mm左右,通过标定助手测量得到的结果为53.4278mm,有点误差,因为标定时设置参考位姿是大致摆正标定板使得和像素坐标方向一致,实际上摆的不一定很正,所以会存在误差。实际应用过程中,要拍标定图像经过仿射变换到竖直方向,使得位姿参考即图像坐标系和像素坐标系在x和y方向上是相互平行的,保存后加载该图像进行标定并以它为位姿参考。或者用直尺拉一道竖直的线,将标定板靠着这条线放然后采集标定。

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东城青年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值