测量橡胶密封圈的内外径尺寸

昨晚跟一位朋友的讨论橡胶密封圈的内外径尺寸测量的问题,因为还没有学到边缘检测和测量的具体知识,只能不够系统的先找算子,拼拼凑凑算是初步解决啦。
把问题、代码和结果分享给大家。
问题:测量出橡胶密封圈的内外径尺寸,如图:


代码:读图→边缘检测→计算边缘数量→测量圆半径→输出

read_image(Image,'F:/Halcon test/measuring/lunkuo4.jpg')
读图
get_image_size(Image, Width, Height)
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
获得窗口大小
edges_sub_pix(Image, Edges, 'canny', 1, 20, 40)
边缘检测,阈值范围20-40
count_obj(Edges, Number)
计算边缘数量
set_display_font (WindowHandle, 12, 'mono', 'true', 'false')
dev_display(Edges)
dev_display(Image)
for i := 1 to Number by 1
循环边缘数量
select_obj(Edges, ObjectSelected, i)
选择第i个边缘
fit_circle_contour_xld(ObjectSelected, 'algebraic', -1, 0, 0, 3, 2, Row, Column, Radius, StartPhi, EndPhi, PointOrder)
gen_circle_contour_xld(ContCircle, Row, Column, Radius, 0, 6.28318, 'positive', 1)
圆的测量,圆心,半径
dev_set_color ('cyan')
dev_display (ContCircle)
Row2 := Row+Radius*sin(rad(-45))
Column2 := Column+Radius*cos(rad(-45))
set_tposition (WindowHandle, Row2 -35, Column2 +5)
disp_arrow (WindowHandle, Row, Column, Row+Radius*sin(rad(-i*20)), Column+Radius*cos(rad(-i*20)), 2)
画箭头
disp_message (WindowHandle, 'R' + i + ' = ' + Radius$'.4', 'window', Row+Radius*sin(rad(-i*20))-10, Column+Radius*cos(rad(-i*20))+10, 'red', 'false')
输出半径数值
endfor




代码复制黏贴可测试
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值