HALCON第二讲->预处理

文章目录

      • 📊 **一、去噪滤波:消除噪声干扰**
        • **1. 高斯滤波** `gauss_filter`
        • **2. 中值滤波** `median_image`
        • **3. 自适应去噪** `remove_image_noise` (HALCON 10.0.2+)
      • 🔍 **二、边缘检测:亚像素级轮廓提取**
        • **1. Canny算法** `edges_sub_pix`
        • **2. Deriche算法** `edges_deriche`
      • **三、图像分割算子详解**
        • **1. 阈值分割**
        • **2. 区域生长**
        • **3. 分水岭分割**
        • **4. 动态区域分割**
      • 🧩 **四、形态学处理:优化区域结构**
        • **1. 基础操作**
      • **形态学处理算子精解**
        • **1. 基础操作**
        • **2. 高级形态学技术**
        • **例程**
      • 🌟 **四、图像增强:提升特征可辨识度**
        • **1. 对比度增强** `emphasize`
        • **2. 动态阈值** `dyn_threshold`
      • 🎨 **五、彩色图像处理**
        • **1. HSV空间增强**
        • **2. 深度学习融合**
      • ⚙️ **六、综合应用:工件尺寸测量全流程**
        • **目标**:检测铝合金表面划痕与凹坑(光照不均环境下)
      • 💎 **七、选型决策树与避坑指南**
        • **1. 算子选型逻辑**
        • **2. 高频避坑策略**
        • **3 分割算子常见问题**
        • **4. 形态学操作调优表**

以下是针对HALCON图像预处理算子的系统性解析,结合原理剖析参数详解场景示例工业级代码注释,帮助开发者深入掌握核心预处理技术。


📊 一、去噪滤波:消除噪声干扰

1. 高斯滤波 gauss_filter
  • 原理
    基于二维高斯函数加权平均,距离中心越近的像素权重越高,数学表达:
    G(x,y)=12πσ2e−x2+y22σ2G(x,y) = \frac{1}{2\pi\sigma^2} e^{-\frac{x^2+y^2}{2\sigma^2}}G(x,y)=2πσ21e2σ2x2+y2
  • 参数
    Sigma(标准差):控制平滑强度(典型值1.0~3.0),值越大越模糊。
    MaskSize(掩膜尺寸):自动根据Sigma计算,通常无需手动设置。
  • 场景
    抑制高斯噪声(如传感器热噪声),适合边缘保留要求不极端的场景。
  • 示例
    read_image (Image, 'sensor_image.jpg')
    gauss_filter (Image, Smoothed, 2.5)  // Sigma=2.5,中度平滑
    
2. 中值滤波 median_image
  • 原理
    取邻域内像素灰度值的中位数替代中心值,有效消除离群点。
  • 参数
    MaskType:结构形状('circle''square'
    Radius:圆形半径或方形边长(如3~7像素)。
  • 场景
    去除椒盐噪声(如工业相机传输干扰),保留边缘锐利度。
  • 示例
    median_image (Image, Median, 'circle', 5)  // 圆形掩膜,半径5px
    
3. 自适应去噪 remove_image_noise (HALCON 10.0.2+)
  • 原理
    局部像素强度分析(LPI算法),动态调整滤波强度。
  • 参数
    Method:算法类型('lpi'
    Threshold:噪声检测阈值(值越小越敏感,典型20~30)
    FilterSize:局部窗口大小(奇数,如5×5)。
  • 场景
    混合噪声(如低光照图像),平衡去噪与细节保留。
  • 示例
    remove_image_noise (Image, Cleaned, 'lpi', 25, 'filter_size', 5) 
    

🔍 二、边缘检测:亚像素级轮廓提取

1. Canny算法 edges_sub_pix
  • 原理
    1. 高斯平滑 → 2. Sobel梯度计算 → 3. 非极大抑制 → 4. 双阈值连接边缘。
  • 参数
    Filter:边缘检测类型('canny'
    Alpha:平滑系数(小值保留细节,大值抗噪,典型1.0~2.0)
    Low/High:双阈值(低阈值:高阈值 ≈ 1:2~1:3,如20/40)。
  • 场景
    高精度尺寸测量(如齿轮齿距检测),要求亚像素级精度(误差<0.1px)。
  • 示例
    edges_sub_pix (Image, Edges, 'canny', 1.5, 25, 50)  // 抗噪与细节平衡
    fit_circle_contour_xld (Edges, 'algebraic', -1, 0, 0, _, Row, Col, Radius) // 圆拟合
    
2. Deriche算法 edges_deriche
  • 原理
    递归滤波器近似高斯导数,计算效率比Canny高30%。
  • 参数
    Alpha:平滑控制(值越大边缘越连续)
    Mode:梯度方向('positive'仅检测正梯度)。
  • 场景
    实时检测(如流水线零件定位),资源受限场景。
  • 示例
    edges_deriche (Image, Edges, 1.0, 1.0, 'positive', 'all', 0, 255) 
    

三、图像分割算子详解

1. 阈值分割
  • threshold
    原理:根据灰度值范围提取区域,适用于目标与背景对比度明显的场景。
    参数
    • MinGray/MaxGray:灰度阈值范围(经验值:背景与目标灰度差>50)
    • 调优效果
      • 范围过窄 → 漏检(目标不完整)
      • 范围过宽 → 过检(包含噪声)
        示例
    read_image(Image, 'pcb.jpg')
    * 提取亮色焊点(灰度150~255)
    threshold(Image, SolderRegions, 150, 255)  
    
2. 区域生长
  • regiongrowing
    原理:从种子点出发,合并灰度相似的相邻像素(相似性准则:灰度差≤阈值)。
    参数
    • Tolerance:允许的灰度差异(典型值5~20)
    • MinSize:最小区域面积(过滤噪声)
      场景:医学图像肿瘤分割、金属表面纹理分析。
      示例
    * 种子点选择亮斑,合并相似区域
    regiongrowing(Image, Regions, 10, 5, 100)  
    
3. 分水岭分割
  • watersheds
    原理:将图像视为地形,模拟水流淹没过程生成分水岭线(边界)。
    参数
    • Markers:预标记区域(避免过分割)
      调优技巧
    • 预处理用高斯滤波降噪 → 减少虚假分水岭
      示例
    gauss_filter(Image, Smoothed, 3)
    watersheds(Smoothed, Basins, Watersheds)  
    
4. 动态区域分割
  • partition_dynamic
    原理:在最小垂直跨度位置切割区域,解决字符粘连问题。
    参数
    • Distance:期望分割宽度(如字符宽度)
    • Percent:搜索范围比例(默认20%)
      场景:OCR字符分割、条形码分离。
      示例
    * 分割粘连字符(期望宽度25像素)
    partition_dynamic(TextRegion, SplitRegions, 25, 20)  
    

🧩 四、形态学处理:优化区域结构

1. 基础操作
算子 原理 参数 场景
dilation_circle 圆形结构元素扩展边界 Radius(3~15) 连接裂缝(如金属表面缺陷)
erosion_circle 收缩边界去除孤立点 Radius(2~10) 分离粘连目标(如颗粒计数)
opening_circle 先腐蚀后膨胀 Radius(2~8) 去小噪点(<5px)
closing_circle 先膨胀后腐蚀 Radius(3~12) 填孔洞(如铸件气孔)

以下基于HALCON图像分割与形态学处理技术,结合工业视觉实践,系统梳理核心算子原理、参数调优策略及复杂场景解决方案,并提供可复用的代码示例。


形态学处理算子精解

1. 基础操作
算子 数学原理 作用 参数调优
dilation_circle A⊕BA \oplus BAB 扩大区域,连接裂缝 Radius↑ → 膨胀更强
erosion_circle A⊖BA \ominus BA
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

晓纪同学

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

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

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

打赏作者

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

抵扣说明:

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

余额充值