Halcon 圆形检测(测量模型)

Halcon 圆形检测(测量模型)

资源

链接:https://pan.baidu.com/s/1icVPSCsnYLxfnyCkARLMog
提取码:47rj

原始图片

在这里插入图片描述

代码


* 1.读取图片 ********************************************
dev_update_off ()
read_image (Image, './pads')
get_image_size (Image, Width, Height)
dev_close_window ()
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
set_display_font (WindowHandle, 14, 'mono', 'true', 'false')

* 2.模型参数 ********************************************
* 中心点
CircleRow := 52
CircleColumn := 348
* 扫描半径
CircleRadius := 23
* 矩形边缘深度
RadiusTolerance := 12
* 矩形边缘宽度
RectWidth := 5
* 获取圆形连通域
gen_circle_contour_xld (ParamCircle, CircleRow, CircleColumn, CircleRadius, 0, 6.28318, 'positive', 1)
* 中心点
gen_cross_contour_xld (CrossCenter, CircleRow, CircleColumn, 6, 0.785398)

* 3.创建模型与设置参数 ************************************
* 创建测量模型
create_metrology_model (MetrologyHandle)

set_metrology_model_image_size (MetrologyHandle, Width, Height)
* 添加测量对象 -- 圆形测量
add_metrology_object_circle_measure (MetrologyHandle, \
                                     CircleRow, CircleColumn, \
                                     CircleRadius, RadiusTolerance, \
                                     RectWidth, 1.5, 2, [], [], MetrologyCircleIndices)

* 设置检出个数
set_metrology_object_param (MetrologyHandle, MetrologyCircleIndices,\
                            'num_instances', 2)
* 设置检测极性
set_metrology_object_param (MetrologyHandle, MetrologyCircleIndices,\
                            'measure_transition', 'uniform')
* 设置最小分数
set_metrology_object_param (MetrologyHandle, MetrologyCircleIndices, \
                            'min_score', .9)
* 执行处理
apply_metrology_model (Image, MetrologyHandle)

* 4. 获取处理结果************************************
* 获取处理结果
get_metrology_object_result (MetrologyHandle, MetrologyCircleIndices, \
                             'all', 'result_type', 'all_param', CircleParameter)
* 拆分处理结果
Sequence := [0:3:|CircleParameter| - 1]
* 结果
ResultCircleRow := CircleParameter[Sequence]
ResultCircleColumn := CircleParameter[Sequence + 1]
ResultCircleRadius := CircleParameter[Sequence + 2]

* 获取圆形结果(XLD)
get_metrology_object_result_contour (Contours, MetrologyHandle, 'all', 'all', 1.5)
* 获取边缘结果
get_metrology_object_measures (Contour, MetrologyHandle, 'all', 'all', EdgeRows, EdgeColumns)
* 生成边缘点
gen_cross_contour_xld (EdgeCross, EdgeRows, EdgeColumns, 6, 0.785398)


* 5. 显示处理结果************************************
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 (EdgeCross)
dev_set_line_width (2)
dev_set_color (Color[2])
dev_display (Contours)

dev_set_color ('red')
dev_display (CrossCenter)
dev_display (ParamCircle)

Message := Color[2] + ': 圆形结果'
Message[1] := Color[1] + ': 边缘点'
Message[2] := Color[0] + ': 检测区域'
Message[3] := 'red' + ': 设置参数'
disp_message (WindowHandle, Message, 'window', 12, 12, 'black', 'true')

结果图片

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

廷益--飞鸟

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

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

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

打赏作者

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

抵扣说明:

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

余额充值