HALCON 是一款强大的机器视觉软件,广泛应用于工业自动化领域,特别是在缺陷检测方面有着卓越的表现。以下是 HALCON 缺陷检测的一些常用方法及其具体应用实例。
1. Blob 分析
Blob 分析是一种基于区域的图像处理方法,适用于检测图像中的连通区域。通过提取这些区域的形状特征,可以识别出缺陷。
应用实例:在 PCB 线路板检测中,可以通过 Blob 分析提取出线路的连通区域,进一步分析这些区域的形状特征(如面积、周长、圆形度等),从而检测出线路的断开或短路等问题。
2. 边缘检测
边缘检测是一种基于梯度的图像处理方法,适用于检测图像中的边缘。通过提取图像中的边缘信息,可以识别出缺陷。
应用实例:在饼干完整性检测中,可以通过边缘检测提取出饼干的轮廓,进一步分析这些轮廓的连续性和完整性,从而检测出饼干是否有缺损或裂纹。
3. 光度立体法
光度立体法是一种基于多视角光照的图像处理方法,适用于检测三维表面的缺陷。通过从多个视角拍摄图像并合成梯度图,可以识别出表面的凹凸、划痕等缺陷。
应用实例:在药片包装背面的缺陷检测中,可以通过光度立体法从多个视角拍摄药片包装的图像,合成梯度图,进一步分析这些梯度图的特征,从而检测出包装背面的凹凸、划痕等缺陷。
4. 特征训练
特征训练是一种基于机器学习的图像处理方法,适用于检测复杂且多样的缺陷。通过训练模型识别出缺陷的特征,可以实现高精度的缺陷检测。
应用实例:在皮革表面纹理的缺陷检测中,可以通过特征训练提取出皮革表面的纹理特征,进一步分析这些特征,从而检测出皮革表面的凹凸、污点等缺陷。
5. 测量拟合
测量拟合是一种基于几何测量的图像处理方法,适用于检测形状和尺寸的缺陷。通过测量图像中的几何特征,可以识别出形状和尺寸的偏差。
应用实例:在工件表面光滑度检测中,可以通过测量拟合提取出工件表面的几何特征,进一步分析这些特征,从而检测出工件表面的粗糙度和光滑度。
6. 频域处理
频域处理是一种基于傅里叶变换的图像处理方法,适用于检测图像中的高频和低频特征。通过分析图像的频域特征,可以识别出图像中的噪声和细节。
应用实例:在网格表面网孔的缺陷检测中,可以通过频域处理提取出网格表面的频域特征,进一步分析这些特征,从而检测出网孔的缺失或变形。
HALCON 定位检测实例
HALCON 不仅在缺陷检测方面表现出色,还在定位检测方面有着广泛的应用。以下是一个典型的 HALCON 定位检测实例:
工件定位检测
步骤:
图像预处理:读取待处理的图像,调整图像的对比度和亮度,提高工件的可见性。
边缘检测:使用边缘检测算子(如 Canny 滤波器)提取工件的轮廓。
特征提取:提取工件的形状特征(如面积、周长、矩形度等)。
模板匹配:使用模板匹配算法(如 NCC)匹配工件的标准轮廓,确定工件的位置和姿态。
结果验证:验证检测结果,必要时进行人工确认。
参数调整:根据检测结果调整算法参数,提高检测准确率。
示例代码:
halcon
* 读取图像
read_image (
Image
‘image_path
* 预处理图像
scale_image_max (
Image
, ImageMax)
equalize_image (
ImageMax
, ImageEqual)
* 边缘检测
edges_sub_pix (
ImageEqual
, Edges,
‘canny
‘,
* 特征提取
shape_trans (
Edges
, Contours,
‘polygon_approximation
‘,
0.1
* 模板匹配
find_shape_model (
Contours
, ModelID,
360
0.5
0.7
‘least_squares
‘,
0.5
, Row, Column, Angle, Score, ResultHandle)
* 显示结果
set_display_font (
‘small
disp_obj (
Contours
disp_message (
‘Object
located’,
‘window
‘,
‘black
‘,
‘false
通过以上方法和实例,可以看到 HALCON 在缺陷检测和定位检测方面的强大功能和灵活性。这些方法不仅适用于单一的检测任务,还可以组合使用,以应对更复杂的检测需求。