Halcon学习--(1)常用算子
一、图像采集与初始化
算子 | 功能说明 | 关键参数 | 典型应用场景 |
---|---|---|---|
| 连接相机/采集卡 |
| 生产线实时图像采集 |
| 同步抓取单帧图像 |
| 高精度定位场景 |
| 异步抓取图像(非阻塞) |
| 高速流水线连续拍摄 |
| 从磁盘读取图像文件 |
| 离线算法调试 |
| 获取图像宽高 |
| 自适应分辨率处理 |
open_framegrabber:可以直接操作相机,有些相机厂家为了兼容,会开发对应的DLL让你放在它的运行程序下。但是正常来说我们不会用这个接口,它也有一些时效性和局限性。一般在测试算法时,在HalconIDE中使用。正常情况下,厂家会为你提供各种编程语言的Demo,它的可控性更高。
read_image:这个算子是经常用使用的,一般是在现场收集图像保存成文件,回来给算法大量验证的。
二、图像预处理(去噪与增强)
1、去噪滤波
算子 | 原理/特点 | 参数调优 | 适用场景 |
---|---|---|---|
| 高斯加权平滑,保留边缘 |
| 抑制高斯噪声(传感器热噪) |
| 取邻域中值,消除离群点 |
| 去除椒盐噪声(传输干扰) |
| 局部对比度拉伸,增强细节 |
| 微弱缺陷强化(划痕检测) |
| 灰度线性拉伸至[0,255] | 无 | 低对比度图像增强 |
2、分割与边缘检测
算子 | 功能 | 关键参数 | 精度/场景 |
---|---|---|---|
| 全局阈值分割 |
| 目标与背景对比度高 |
| 动态阈值(适应光照不均) |
| 反光表面字符识别 |
| 亚像素边缘检测(Canny/Deriche算法) |
| 齿轮齿距测量(误差<0.1px) |
三、图像分割与形态学处理
1、区域操作
算子 | 作用 | 参数说明 | 工程意义 |
---|---|---|---|
| 连通域分析 | 无 | 分离粘连目标(颗粒计数) |
| 按形状特征筛选区域 |
| 筛选真缺陷(面积>100px) |
| 圆形膨胀(连接裂缝) |
| 金属焊缝修补 |
| 先膨胀后腐蚀(填充孔洞) |
| 铸件气孔填充 |
四、特征提取与测量
算子 | 功能 | 输出 | 应用案例 |
---|---|---|---|
| 计算区域面积和中心坐标 |
| 零件定位 |
| 获取带旋转角度的外接矩形 |
| 钣金件方向校准 |
| 亚像素圆拟合 |
| 孔径测量(精度±0.01mm) |
| 计算区域灰度均值和标准差 |
| 表面污渍检测 |
五、模板匹配
算子 | 匹配类型 | 特点 | 场景 |
---|---|---|---|
| 基于形状 | 旋转/缩放不变性,精度高 | 零件多角度定位 |
| 归一化互相关(NCC) | 光照变化鲁棒性强 | 包装盒印刷检测 |
| 3D表面匹配 | 处理点云数据 | 工件三维位姿估计 |
六、几何变换
算子 | 变换类型 | 核心功能 | 典型用途 |
---|---|---|---|
| 仿射变换矩阵初始化 | 创建单位矩阵 | 变换链起点 |
| 旋转 | 绕指定点旋转 | 机器人手眼标定 |
| 图像仿射变换 | 支持缩放/旋转/平移 | 图像畸变校正 |
| 投影变换 | 处理透视畸变 | 斜面字符矫正(如包装盒) |
七、调试与优化工具
算子 | 用途 | 技巧 |
---|---|---|
| 实时显示图像/区域/轮廓 | 叠加显示多对象(如缺陷标注) |
| 系统参数配置(如GPU加速) |
|
| 错误变量管理 | 避免内存泄漏(及时释放 |