Halcon特征提取与分析

课程基本信息

  • 课程名称:Halcon特征提取与分析技术
  • 课时安排:6课时(270分钟)
  • 授课对象:机器视觉中级/高级学习者
  • 先修要求:熟悉Halcon图像预处理技术

教学目标

  1. 掌握基于区域和轮廓的特征提取方法
  2. 能够进行形状特征测量与分析
  3. 熟练使用分类工具进行对象识别
  4. 具备实际工业检测案例的解决能力

教学重点与难点

  • 重点
    • 区域分割技术
    • 亚像素边缘提取
    • 几何特征测量
  • 难点
    • 复杂背景下的目标提取
    • 动态阈值选择
    • 多特征融合分析

教学准备

  1. 实验样本:
    • 工业零件图像(含缺陷样本)
    • 印刷品图像(字符/条码)
    • 生物显微图像
  2. 软件工具:
    • Halcon 20.11+
    • HDevelop示例程序
  3. 辅助材料:
    • 特征参数对照表
    • 检测标准文档(模拟)

详细教学内容

一、区域分割技术(90分钟)

1.1 阈值分割

1
2
3
4
* 全局阈值
threshold(Image, Region, 128, 255)
* 动态阈值
dyn_threshold(OrigImage, ThresholdImage, RegionDyn, 15, 'light')

1.2 区域生长

1
2
* 区域生长示例
regiongrowing(Image, Regions, 1, 1, 0.5, 100)

1.3 彩色分割

1
2
3
* HSV空间分割
trans_from_rgb(Image, ImageH, ImageS, ImageV, 'hsv')
threshold(ImageS, Region, 100, 255)

实验对比

方法 适用场景 优缺点
全局阈值 高对比度 速度快但适应性差
动态阈值 光照不均 抗干扰强但计算量大
区域生长 纹理区域 效果优但参数敏感

二、亚像素边缘提取(60分钟)

2.1 经典边缘检测

1
edges_sub_pix(Image, Edges, 'canny', 1, 20, 40)

2.2 边缘筛选

1
2
select_contours_xld(Edges, SelectedContours, 'contour_length', 
10, 200, -0.5, 0.5)

2.3 亚像素测量

1
2
measure_pos(Image, MeasureHandle, 1, 30, 'negative', 'first', 
RowEdge, ColumnEdge, Amplitude, Distance)

精度对比实验

  • 像素级vs亚像素级尺寸测量误差
  • 不同算子(canny/sobel/lanser)效果比较

三、特征提取与分析(90分钟)

3.1 几何特征

1
2
area_center(Region, Area, Row, Column)
orientation_region(Region, Phi)

3.2 灰度特征

1
gray_features(Region, Image, Features)

3.3 纹理特征

1
texture_laws(Image, ImageTexture, 'el', 5, 5)

特征参数表

1
2
3
4
5
| 特征类型 | 常用参数                | 物理意义           |
|----------|-------------------------|--------------------|
| 几何特征 | Area, Circularity | 目标大小/形状规则度 |
| 灰度特征 | Mean, Deviation | 明暗程度/均匀性 |
| 纹理特征 | Energy, Homogeneity | 纹理粗糙度/方向性 |

四、案例实战(90分钟)

4.1 PCB板元件检测

1
2
3
4
5
6
* 元件定位
find_shape_model(Image, ModelID, -0.2, 0.2, 0.7, 3, 0.5,
'least_squares', 0, 0.9, Row, Column, Angle, Score)
* 引脚计数
connection(RegionPins, ConnectedRegions)
count_obj(ConnectedRegions, NumberPins)

4.2 药品包装检测

1
2
3
4
5
6
* 字符识别
read_ocr_class_mlp('Industrial_0-9A-Z.omc', OCRHandle)
do_ocr_multi_class_mlp(RegionChars, Image, OCRHandle, Class, Confidence)
* 包装完整性检测
deviation_image(Image, ImageMean, ImageDeviation)
threshold(ImageDeviation, DefectRegion, 30, 255)

4.3 生物细胞分析

1
2
3
4
5
* 细胞分割
watersheds_threshold(Image, Basins, 10)
* 形态学筛选
select_shape(Basins, SelectedCells, ['area','circularity'],
'and', [500,0.7], [5000,1.0])

教学策略

  1. 对比教学法

    • 同一目标不同提取方法对比
    • 参数变化对结果的影响实验
  2. 项目驱动法

    • 分组完成模拟工业检测项目
    • 从需求分析到结果报告全流程
  3. 错误分析法

    • 故意设置错误参数
    • 引导学生分析失败原因

实验设计

基础实验

  1. 硬币直径测量(几何特征)
  2. 产品标签字符提取(区域分析)

进阶实验

  1. 焊接缺陷检测(多特征融合)
  2. 柔性材料变形分析(非刚性匹配)

创新实验

  1. 自定义特征评价体系
  2. 动态参数调整算法实现

评估方案

  1. 过程评估

    • 实验完成度(40%)
    • 方法创新性(30%)
    • 报告质量(30%)
  2. 典型考核题

    1
    2
    3
    4
    * 给定齿轮图像,要求:
    * 1. 提取所有齿部区域
    * 2. 计算齿距平均值
    * 3. 找出异常齿(尺寸差异>15%)

常见问题解决

  1. 过分割问题

    • 方案:形态学后处理
      1
      closing_circle(OverSegmented, UnifiedRegion, 3.5)
  2. 弱边缘提取

    • 方案:多尺度增强
      1
      emphasize(Image, ImageEnhanced, 7, 7, 2.0)
  3. 特征选择困惑

    • 决策树参考:
      1
      2
      3
      4
      5
      graph TD
      A[目标类型] --> B[刚性物体]
      A --> C[非刚性物体]
      B --> D[几何特征为主]
      C --> E[纹理特征为主]

拓展学习

  1. 三维特征提取(3D相机数据)
  2. 深度学习特征融合
  3. 在线检测系统集成