概述
在剃须刀生产中,为了保证刀片的质量,需要对刀片的齿状边缘进行检测。本程序使用 HALCON 实现了一个基于形状匹配的检测流程。它可以精准定位目标刀片,对刀片的牙齿宽度和间距进行测量,并检测牙齿缺失或宽度不足的问题。
1. 初始化与图像加载
功能描述
在程序的开始部分,我们需要读取模板图像(即标准的剃须刀刀片图像),为后续检测提供一个对比的“基准”。同时,初始化显示窗口以便观察图像和处理结果。
对应代码
* 关闭实时更新功能,加速程序执行
dev_update_off ()
* 读取模板图像 'razors1.png'
read_image (ModelImage, 'razors1.png')
* 获取模板图像的尺寸信息(宽度和高度)
get_image_pointer1 (ModelImage, Pointer, Type, Width, Height)
* 关闭可能已打开的显示窗口
dev_close_window ()
* 打开新的显示窗口,窗口大小和图像一致
dev_open_window (0, 0, Width, Height, 'white', WindowHandle)
* 设置显示窗口显示整个图像
dev_set_part (0, 0, Height - 1, Width - 1)
* 显示模板图像
dev_display (ModelImage)
* 设置绘图颜色和绘图参数
dev_set_color ('cyan') * 设置绘图颜色为青色
dev_set_draw ('margin') * 设置仅绘制区域边框
dev_set_line_width (2) * 设置绘图线宽为2像素
* 暂停程序运行,方便用户检查
stop ()
流程讲解
这部分代码的作用是加载模板图像,并设置显示窗口参数。这样我们可以看到完整的模板图像,并为后续操作提供一个基础。
2. 模板对象选择与模型创建
功能描述
为了检测刀片上的牙齿,需要选中图像中感兴趣的区域(ROI,Region of Interest)。在此基础上,生成形状匹配模型,用于在目标图像中找到类似的刀片。
对应代码
* 定义模板的感兴趣区域(ROI),包括两个矩形区域
Row1 := 46
Column1 := 57
Row2 := 79
Column2 := 94
gen_rectangle1