HALCON 算子函数(十一) Morphology

本文详细介绍了HALCON算子函数在灰度值和区域形态学处理中的应用,包括开、闭操作、腐蚀、膨胀、底帽变换、顶帽变换等。同时探讨了如何通过结构元素的生成、读取、以及形态学运算在图像处理领域的实际应用。
HALCON算子函数——Chapter 11 : Morphology
11.1 Gray-Values
1. dual_rank
功能:打开、取中值和关闭圆和矩形掩码。
2. gen_disc_se
功能:为灰度形态学生成椭圆结构基础。
3. gray_bothat
功能:执行一个图像的一个灰度值bottom_hat变换(原图像和它的闭
之间的差)。
4. gray_closing
功能:关闭一个图像的一个灰度值。
5. gray_closing_rect
功能:关闭带矩形掩码的灰度值。
6. gray_cl_osing_shape
功能:关闭带选择掩码的灰度值。
7. gray_dilation
功能:扩大一个图像上的灰度值。
8. gray_dilation_rect
功能:确定一个矩形的最小灰度值。
9. gray_dilation_shape
功能:确定一个选择的掩码的最大灰度值。
10. gray_erosion
功能:腐蚀一个图像的灰度值。
11. gray_erosion_rect
功能:确定一个矩形的最小灰度值。
12. gray_erosion_shape
功能:确定一个选择的掩码的最小灰度值。
13. gray_opening
功能:打开一个图像的灰度值。
14. gray_opening_rect
功能:打开一个矩形掩码的灰度值。
15. gray_openin_g_shape
功能:打开一个选择的掩码的灰度值。
16. gray_range_rect
功能:确定一个矩形的灰度值范围。
17. gray_tophat
功能:执行一个图像的一个灰度值top_hat变换(原图像和它的开之
间的差)。
18. read_gray_se
功能:为灰度形态学下载一个结构基础。
11.2 Region
1. bottom_hat
功能:计算区域的bottom_hat(原图像和它的闭之间的差)。
2. boundary
功能:把一个区域减小到它的边界。
3. closing
功能:关闭一个区域。
4. closing_circle
功能:关闭一个圆形结构基础的一个区域。
5. closing_golay
功能:关闭格雷字母表中的元素的一个区域。
6. closing_rectangle1
功能:关闭一个矩形结构基础的一个区域。
7. dilation1
功能:扩大一个区域。
8. dilation2
功能:扩大一个区域(使用一个参考点)。
9. dilation_circle
功能:扩大一个圆形结构基础的一个区域。
10. dilation_golay
功能:扩大格雷字母表的元素的一个区域。
11. dilation_rectangle1
功能:扩大一个矩形结构基础的一个区域。
12. dilation_seq
功能:顺序地扩大一个区域。
13. erosion1
功能:腐蚀一个区域。
14. erosion2
功能:腐蚀一个区域(使用参考点)。
15. erosion_circle
功能:腐蚀一个圆形结构基础的一个区域。
16. erosion_golay
功能:腐蚀格雷字母表的一个元素的一个区域。
17. erosion_rectangle1
功能:腐蚀一个矩形结构基础的一个区域。
18. erosion_seq
功能:按顺序腐蚀一个区域。
19. fitting
功能:执行多重结构基础的打开后关闭。
20. gen_struct_elements
功能:生成一个标准结构基础。
21. golay_elements
功能:生成格雷字母表的结构基础。
22. hit_or_miss
功能:区域的Hit-or-miss运行。
23. hit_or_miss_golay
功能:使用格雷字母表的区域的Hit-or-miss运行。
24. hit_or_miss_seq
功能:使用格雷字母表的区域的Hit-or-miss运行(按顺序)。
25. minkowski_add1
功能:执行一个区域的Minkowski添加。
26. minkowski_add2
功能:扩大一个区域(使用参考点)。
27. minkowski_sub1
功能:腐蚀一个区域。
28. minkowski_sub2
功能:腐蚀一个区域(使用参考点)。
29. morph_hat
功能:计算bottom_hat_和top_hat的联合。
30. morph_skeleton
功能:计算一个区域的形态学框架。
31. morph_skiz
功能:缩小一个区域。
32. opening
功能:打开一个区域。
33. opening_circle
功能:打开一个圆形结构基础的一个区域。
34. opening_golay
功能:打开格雷字母表的一个元素的一个区域。
35. opening_rectangle1
功能:打开一个矩形结构基础的一个区域。
36. opening_seg
功能:分离重叠区域。
37. pruning
功能:去掉一个区域的分支。
38. thickening
功能:把一个Hit-or-miss运行的结果添加到一个区域。
39. thickening_golay
功能:把一个Hit-or-miss运行的结果添加到一个区域中(使用一个
Golay结构基础)。
40. thickening_seq
功能:把一个Hit-or-miss运行的结果添加到一个区域中(按顺序)。
41. thinning
功能:从一个区域移去一个Hit-or-miss运行的结果。
42. thinning_golay
功能:从一个区域移去一个Hit-or-miss运行的结果(使用一个Golay
结构基础)。
43. thinning_seq
功能:从一个区域移去一个Hit-or-miss运行的结果(按顺序)。
44. top_hat
功能:计算区域的top_hat(原图像和它的开之间的差)。
Halcon 算子是机器视觉应用中的关键工具,涵盖了图像处理、几何变换、特征提取、测量、3D 视觉等多个领域。以下是对 Halcon 算子的分类及使用方法的结构化知识,适用于构建思维导图。 ### 三、Halcon 算子分类及使用方法 #### 1. 图像处理类算子 用于图像增强、滤波、形态学操作等基础处理。 - **`read_image`**:读取图像文件。 - **`write_image`**:保存处理后的图像。 - **`gauss_filter`**:高斯滤波,用于图像平滑。 - **`median_image`**:中值滤波,去除椒盐噪声。 - **`morphology`**:形态学操作(膨胀、腐蚀、开运算、闭运算)。 - **`scale_image`**:图像灰度值缩放。 #### 2. 边缘检测类算子 用于提取图像中的边缘信息。 - **`edges_image`**:边缘检测,支持 Canny、Sobel 等方法。 - **`hysteresis_threshold`**:滞后阈值处理,用于边缘连接。 - **`sub_pix`**:亚像素边缘检测,提升精度[^1]。 #### 3. 特征提取类算子 用于识别图像中的关键特征,如角点、斑点、轮廓等。 - **`find_circles`**:检测图像中的圆形。 - **`find_rectangles1`**:检测矩形区域。 - **`find_shape_model`**:基于模板匹配的形状检测。 - **`find_scaled_shape_model`**:支持尺度变化的形状匹配。 - **`find_aniso_shape_model`**:支持仿射变换的形状匹配。 #### 4. 几何变换类算子 用于图像的仿射变换、投影变换等。 - **`hom_mat2d_identity`**:创建单位变换矩阵。 - **`hom_mat2d_translate`**:平移变换。 - **`hom_mat2d_rotate`**:旋转变换。 - **`hom_mat2d_scale`**:缩放变换。 - **`affine_trans_image`**:应用仿射变换到图像。 #### 5. 测量类算子 用于尺寸测量、距离计算等。 - **`measure_pos`**:测量图像中的位置信息。 - **`measure_pairs`**:测量图像中的多个位置对。 - **`distance_pp`**:计算两点之间的欧几里得距离。 - **`width_height_rectangle1`**:计算矩形区域的宽度和高度。 #### 6. 3D 视觉类算子 用于处理点云数据、3D 重建与分析。 - **`read_object_model_3d`**:读取 3D 模型。 - **`write_object_model_3d`**:保存 3D 模型。 - **`get_surface_model`**:获取表面模型。 - **`find_surface_model`**:匹配 3D 表面模型。 - **`project_object_model_3d`**:将 3D 模型投影到 2D 图像中。 #### 7. 深度学习类算子 支持深度学习模型的训练与推理。 - **`create_dl_model`**:创建深度学习模型。 - **`train_dl_model`**:训练深度学习模型。 - **`apply_dl_model`**:应用训练好的模型进行推理。 - **`read_dl_model`**:加载预训练模型。 - **`write_dl_model`**:保存训练后的模型。 #### 8. 显示与交互类算子 用于图像显示、窗口管理与用户交互。 - **`dev_open_window`**:打开图像显示窗口。 - **`dev_display`**:在窗口中显示图像或图形。 - **`dev_set_color`**:设置显示颜色。 - **`dev_set_line_width`**:设置线条宽度。 - **`dev_close_window`**:关闭图像窗口。 #### 9. 文件与数据操作类算子 用于数据读写与文件管理。 - **`read_tuple`**:读取元组数据。 - **`write_tuple`**:写入元组数据。 - **`read_region`**:读取区域数据。 - **`write_region`**:保存区域数据。 - **`read_shape_model`**:读取形状模型。 - **`write_shape_model`**:保存形状模型。 #### 10. 控制流与逻辑类算子 用于程序流程控制。 - **`if` / `else`**:条件判断。 - **`for` / `while`**:循环结构。 - **`break` / `continue`**:控制循环流程。 - **`return`**:函数返回。 ### 示例代码:使用 Halcon 进行边缘检测与显示 ```hdevelop * 读取图像 read_image (Image, 'pcb') * 使用 Canny 算法检测边缘 edges_image (Image, Edges, 'canny', 1, 20, 40) * 显示原始图像与边缘图像 dev_display (Image) dev_display (Edges) ``` ### 示例代码:使用 Halcon 进行形状匹配 ```hdevelop * 读取图像 read_image (Image, 'shape') * 创建形状模型 create_shape_model (Image, 5, 0, rad(360), 'auto', 'auto', ModelID) * 在图像中查找形状 find_shape_model (ModelID, Image, 0.8, 0, 0, 0.5, 'true', 0, Score) * 显示匹配结果 dev_display_shape_matching_results (ModelID, Image, Score, 0, 0, 0, 0.5, 'green') ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值