基于halcon的圆环宽度测量

宽度测量

原图

在这里插入图片描述

代码

dev_close_window ()
read_image (Image, 'pads.png')
rgb1_to_gray (Image, GrayImage)
get_image_size (GrayImage, Width, Height)
dev_open_window_fit_size (0, 0, Width, Height, -1, -1, WindowHandle)
dev_display (GrayImage)
stop ()
threshold (GrayImage, Regions, 144, 171)
connection (Regions, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 407.83, 4747.15)
smallest_circle (SelectedRegions, Row, Column, Radius)
*1、创建测量模型
create_metrology_model (MetrologyHandle)
*2、设置测量模型图像尺寸
set_metrology_model_image_size (MetrologyHandle, Width, Height)
*3、增加测量模型对象
add_metrology_object_circle_measure (MetrologyHandle, Row, Column, Radius, 20, 5, 1.5, 2, [], [], CircleIndex)
*4、设置测量对象参数
*4.1 设置参数 每个对象寻找两个
set_metrology_object_param (MetrologyHandle, CircleIndex, 'num_instances', 2)
*4.2 设置参数 每个对象查找方式相同
set_metrology_object_param (MetrologyHandle, CircleIndex, 'measure_transition', 'uniform')
*5、进行测量
apply_metrology_model (GrayImage, MetrologyHandle)
*6、获得测量结果
get_metrology_object_result_contour (Contour, MetrologyHandle, CircleIndex, 'all', 1.5)
*7、获得测量区域(长条矩形)及边缘点坐标
get_metrology_object_measures (Contours, MetrologyHandle, 'all', 'all', Row1, Column1)
*8、拟合对象
fit_circle_contour_xld (Contour, 'algebraic', -1, 0, 0, 3, 2, Row2, Column2, Radius1, StartPhi, EndPhi, PointOrder)
*9、使用X标记圆心
gen_cross_contour_xld (Cross, Row2, Column2, 4, 0.785398)


*10、显示
Color :=['red','green','blue']
dev_display (Image)
dev_set_line_width (1)

dev_set_color (Color[1])
dev_display (Contours)

dev_set_color (Color[0])
dev_display (Contour)
dev_display (Cross)


dev_set_color (Color[2])
*获取圆心数组列坐标的最大最小值
tuple_max (Column2, Max)
tuple_min (Column2, Min)

for i := 1 to |Radius1|-1 by 2
    if(Column2[i] < (Max+Min)/2)
       set_tposition (WindowHandle, Row2[i], Column2[i]-2*Radius1[i]-100) 
    else
        set_tposition (WindowHandle, Row2[i], Column2[i]+2*Radius1[i])
    endif
    write_string (WindowHandle, '外-内R ='+(Radius1[i]-Radius1[i-1]))
endfor

dump_window (WindowHandle, 'png', '内外径差测量结果')

结果

在这里插入图片描述

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值