Halcon圆查找功能简介

版权声明:本文为博主原创文章,未经博主允许不得转载。
Halcon基于卡尺的圆查找功能主要会用到:create_metrology_model、add_metrology_object_circle_measure、set_metrology_object_param、apply_metrology_model等算子,我们通过下面这个示例程序来简介具体使用方法。

dev_update_off()
dev_close_window()
dev_open_window(0, 0, 512, 512, 'black', WindowHandle)
dev_set_draw('margin')
index := 0

*圆查找ROI
CircleInitRow:=[120,120,120,323,323,323,323]
CircleInitColumn:=[130,300,455,112,278,410,525]
CircleInitRadius:=[35,25,20,25,20,15,12]

*创建测量句柄
create_metrology_model (MetrologyHandle)
*将圆形或圆弧型的测量对象(ROI)添加到测量模型
add_metrology_object_circle_measure (MetrologyHandle, CircleInitRow, CircleInitColumn, \
                             CircleInitRadius, 10, 2,1, 30, 'num_measures', 30, Index)
                             
repeat    
    read_image (Image, 'rings_and_nuts')
    get_image_size (Image, Width, Height)
    set_metrology_model_image_size (MetrologyHandle, Width, Height)
    *设置测量模型中测量对象参数,像卡尺大小、边缘极性、边缘阈值等参数
    set_metrology_object_param(MetrologyHandle, Index, 'measure_transition', 'negative')
    *测量并拟合一个测量模型中所有测量对象的几何形状
    apply_metrology_model (Image, MetrologyHandle)
    *获取测量模型的测量结果
    get_metrology_object_result (MetrologyHandle, Index, 'all', 'result_type', 'all_param', Circle)
    *获取测量对象的结果轮廓,测量模型拟合出来的圆
    get_metrology_object_result_contour (Contours, MetrologyHandle, Index, 'all', 1.5)

    *获取测量模型中测量对象的测量区域和边缘点位置的坐标
    get_metrology_object_measures (Contour, MetrologyHandle, 'all', 'all', Row1, Column1)
    *渲染边缘点
    gen_cross_contour_xld (Cross, Row1, Column1, 6, 0.785398)

    Color := ['gray','cyan','green']
    dev_display (Image)
    dev_set_line_width (1)
    dev_set_color (Color[0])
    dev_display (Contour)
    dev_set_color (Color[1])
    dev_display (Cross)
    dev_set_line_width (2)
    dev_set_color (Color[2])
    dev_display (Contours)
    
    index := index + 1
    disp_message(WindowHandle, '循环次数:' + index, 'window', 12, 12, 'green', 'false')
        
    stop()
until (false)

*销毁测量句柄
clear_metrology_model (MetrologyHandle)

圆查找结果如下图所示:
在这里插入图片描述
如上图所示,halcon的圆查找功能可以一次查找多个圆,目前将卡尺、边缘点、拟合出来的圆都在图上显示出来了,显示结果放大效果如下图所示:
在这里插入图片描述

  • 1
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值