4. HALCON图像预处理与质量特征提取

在质量追溯系统中,图像预处理与特征提取是连接“原始图像”与“可量化质量指标”的核心环节。HALCON 提供了从灰度变换、滤波、形态学到阈值分割、边缘提取的完整算子链,本节将围绕一条典型的工业检测流程,说明如何把一张原始图像逐步转化为可记录、可比较、可追溯的质量特征值。

灰度变换:统一光照基准

工业现场的光照波动、镜头暗角、相机响应差异都会让同一批产品的灰度分布发生漂移。灰度变换的目标不是“美化图像”,而是把不同时间、不同工位采集的图像映射到统一的灰度基准上,使后续阈值和特征值具有可比性。

常用算子包括 scale_image、scale_image_max 和 emphasize。例如,对一幅 8 位灰度图执行线性拉伸:

scale_image (Image, ImageScaled, 1.8, -60)
scale_image_max (ImageScaled, ImageMax)

其中 Mult=1.8、Add=-60 表示输出灰度 = 输入灰度 × 1.8 − 60。若原图集中在 80~160 灰度区间,拉伸后可扩展到约 84~228,对比度明显增强。对于光照不均的场景,可先用 illuminate 或 equ_histo_image 做背景校正,再进入后续处理。需要强调的是,灰度变换参数一旦确定,应作为工艺参数固化并记录在追溯档案中,否则同一产品在不同参数下会得到不同的质量指标。

滤波:抑制噪声,保留真实缺陷

滤波的选择取决于噪声类型与缺陷尺度。高斯滤波 gauss_filter 适合抑制随机噪声,但会模糊边缘;中值滤波 median_image 对椒盐噪声更有效,且能较好保留边缘;均值滤波 mean_image 计算快,但边缘模糊更明显。

以金属表面划痕检测为例,划痕宽度约 2~3 像素,若使用 gauss_filter 且 Sigma=2.0,划痕对比度会下降约 30%,可能导致漏检。此时可改用 median_image,MaskType='circle'、Radius=1,在去噪的同时保留细划痕。对于周期性纹理干扰,可在频域使用 fft_image 与 convol_fft 做带阻滤波,但工程上更常用 bandpass_image 或 derivate_gauss 直接提取特定尺度结构。

滤波参数应通过一组已知合格/不合格样本进行验证:合格样本的特征波动应小于公差带,不合格样本应能被稳定分离。不要仅凭单张图像主观判断滤波效果。

形态学:塑造区域形状

形态学用于修正区域的形状、连接断裂或分离粘连。HALCON 中 opening_circle、closing_circle、erosion_circle、dilation_circle 是最常用的组合。

例如,阈值分割后得到的焊点区域可能存在毛刺和孤立噪点。先做开运算 opening_circle (Region, RegionOpening, 2.5) 可去除小于半径 2.5 像素的突出物;再做闭运算 closing_circle (RegionOpening, RegionClosing, 3.5) 可填补内部小孔。若两个焊点因反光粘连,可用 erosion_circle 先分离,再 connection 与 select_shape 筛选。形态学结构元尺寸直接对应物理尺度,需根据相机标定换算:若标定结果为 0.05 mm/像素,半径 2.5 像素对应 0.125 mm,这一数值应写入工艺文件。

阈值分割与边缘提取:从灰度到区域和轮廓

阈值分割是把灰度图转为区域的关键步骤。全局阈值 threshold 适合背景均匀的场景;当光照渐变时,应使用 dyn_threshold 或 binary_threshold。例如:

threshold (ImageFiltered, Region, 120, 255)
connection (Region, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 500, 5000)

这里 120~255 为灰度阈值区间,area 筛选 500~5000 像素的区域。对于亚像素级尺寸测量,应使用 edges_sub_pix 提取亚像素边缘,再通过 fit_line_contour_xld 或 fit_circle_contour_xld 拟合几何元素。边缘提取的 Alpha 参数控制平滑程度,Low、High 控制滞后阈值,典型值可取 Alpha=0.8、Low=20、High=40。

特征区域定位与可量化质量指标

区域定位后,需要把区域转换为可追溯的质量指标。HALCON 的 region_features 和 area_center 可提取面积、中心、圆度、矩形度、长宽比等;intensity 系列算子可提取灰度均值、方差、最大最小值。对于追溯系统,建议至少记录以下指标:

  • 区域面积(像素或 mm²)与面积偏差;
  • 区域中心坐标(Row、Column)与位置偏移;
  • 灰度均值、标准差与对比度;
  • 圆度、矩形度或拟合圆半径;
  • 边缘拟合的直线度或圆度误差。

这些指标应连同图像采集时间、相机编号、曝光参数、预处理参数一起写入追溯记录。例如,某密封圈检测中,合格品面积范围为 12500~13500 像素,圆度大于 0.92;若某件产品面积为 11800 像素、圆度为 0.87,则可判定为尺寸偏小且形状异常,系统应记录该件的原始图像路径、特征值和判定结果,供后续追溯查询。

HALCON 图像预处理与质量特征提取链路 从原始图像到可追溯质量指标的算子级数据流 原始图像 8位灰度 / 彩色 光照不均、噪声 灰度变换 scale_image equ_histo_image 滤波去噪 gauss / median bandpass_image 形态学处理 opening / closing erosion / dilation 阈值分割 threshold / dyn_threshold binary_threshold 边缘提取与拟合 edges_sub_pix fit_line / fit_circle 特征区域定位 connection / select_shape area_center / region_features 可量化质量指标 面积 / 中心 / 圆度 / 灰度均值 位置偏移 / 拟合误差 追溯记录写入 图像路径 + 特征值 + 判定 时间 / 相机 / 曝光 / 参数 关键参数与示例值(需按实际标定与样本验证) 灰度拉伸:Mult=1.8,Add=-60;中值滤波:Radius=1,circle 形态学:opening 2.5 px,closing 3.5 px;标定 0.05 mm/px 阈值:120~255;面积筛选:500~5000 px 亚像素边缘:Alpha=0.8,Low=20,High=40 判定示例:面积 12500~13500 px,圆度 > 0.92 为合格 图像输入 灰度/滤波 形态学 分割/边缘 质量指标 追溯记录

从特征值到追溯判定

特征提取完成后,需要把连续量转换为可判定的质量结论。常见做法是设定上下限公差,或使用 classify_class_knn、classify_mlp 等分类器。对于追溯系统,建议保留原始特征值而非仅保留“合格/不合格”标签,因为当工艺调整后,原始特征值可用于重新计算判定边界。

以某注塑件尺寸检测为例,提取区域面积 Area、圆度 Circularity、中心行坐标 Row 三个特征。若 Area 在 12500~13500 像素、Circularity 大于 0.92、Row 在 480~520 像素之间,则判定合格;否则记录异常类型:面积偏小、形状异常或位置偏移。每条记录应包含产品序列号、采集时间、特征值、判定结果和原始图像路径,形成完整的追溯链。

预处理参数和特征阈值必须版本化管理。同一产品在不同参数版本下产生的特征值不可直接比较,追溯查询时应同时显示参数版本号,避免误判。

综上,HALCON 图像预处理与特征提取的核心思路是:先通过灰度变换和滤波稳定输入,再用形态学修正区域形状,通过阈值分割和边缘提取获得几何信息,最后把区域和轮廓转换为面积、圆度、灰度均值等可量化指标,并连同采集与处理参数一起写入追溯记录。只有把“图像—算子—参数—特征值—判定结果”完整关联,质量追溯才具备可复现、可审计的技术基础。