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')

结果图片

请添加图片描述

相关推荐

  1. Halcon深度学习药片检测

    2024-07-12 18:30:04       44 阅读
  2. halcon目标检测标注保存

    2024-07-12 18:30:04       40 阅读
  3. C# Halcon目标检测算法

    2024-07-12 18:30:04       26 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 18:30:04       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 18:30:04       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 18:30:04       57 阅读
  4. Python语言-面向对象

    2024-07-12 18:30:04       68 阅读

热门阅读

  1. html转markdown nodejs实现

    2024-07-12 18:30:04       19 阅读
  2. 记一次nodeBB部署

    2024-07-12 18:30:04       23 阅读
  3. 使用Spring Boot实现分布式配置管理

    2024-07-12 18:30:04       16 阅读
  4. 快速上手文心一言:让创作更轻松

    2024-07-12 18:30:04       18 阅读
  5. 树状数组(Binary Indexed Tree, BIT)

    2024-07-12 18:30:04       19 阅读
  6. LeetCode 20. 有效的括号

    2024-07-12 18:30:04       17 阅读
  7. AI学习指南机器学习篇-聚类树的剪枝

    2024-07-12 18:30:04       17 阅读