Halcon图像控件
Halcon 图像控件是德国 MVTec 公司为C#/.NET 平台提供的专用图像显示容器,本质是封装了 Halcon 底层渲染引擎的 UI 控件,能在 WPF/WinForms 界面中直接显示和操作 Halcon 处理后的图像。

二、核心作用:5 大工业级能力
1. 🖼️ 图像显示:工业视觉的 "眼睛"
核心功能:显示 Halcon 处理后的图像(灰度图、彩色图、深度图等)
项目应用:
csharp
_halconWinFormsControl.HalconWindow.DispObj(enhanceImage); // 显示增强后的X光图像
为什么必须用它:普通 WPF 控件无法直接显示 Halcon 的HImage对象,这是官方唯一的图像显示通道。
2. 🎨 图形绘制:检测结果的 "标注器"
核心功能:在图像上绘制矩形、圆形、文字、区域等,直观展示检测结果
项目应用:
csharp
_halconWinFormsControl.HalconWindow.SetColor("green"); // 设置颜色
_halconWinFormsControl.HalconWindow.DispRectangle1(120, 120, 380, 680); // 绘制检测框
工业价值:缺陷位置、ROI 区域、测量结果可视化,方便操作员判断。
3. ⚙️ 图像处理联动:算法与显示的 "桥梁"
核心功能:无缝衔接 Halcon 算法(去噪、增强、阈值分割等),实时显示处理结果
项目应用:
csharp
smoothImage = rawImage.MeanImage(3, 3); // 去噪算法
enhanceImage = smoothImage.ScaleImage(1.5, 0); // 对比度增强
_halconWinFormsControl.HalconWindow.DispObj(enhanceImage); // 显示处理后图像
关键优势:无需手动转换图像格式,算法输出直接显示,效率极高。
4. 📊 状态反馈:操作过程的 "可视化日志"
核心功能:实时显示处理进度、状态信息,辅助操作决策
项目应用:
点位扫描到位后显示图像
连续扫描时每 200ms 刷新一次图像
限位报警时显示报警信息
工业价值:操作员能直观看到设备状态,及时发现异常。
5. 🛡️ 资源管理:内存安全的 "守护者"
核心功能:自动管理 Halcon 窗口资源,避免内存泄漏
项目应用:控件销毁时自动释放HalconWindow,无需手动调用CloseWindow
关键提醒:绝对不要手动调用OpenWindow(控件已自动初始化),否则会报参数错误。
三、在你的 X 光检测系统中:不可替代的核心地位
1. 程序启动时的初始化
csharp
public MainViewModel(HWindowControl halconControl)
{
_halconWinFormsControl = halconControl; // 绑定控件,必须传入
Loading(); // 初始化完成后显示"已就绪"
}
作用:没有这个控件,整个视觉系统就是 "瞎子",无法显示任何 X 光图像。
2. 核心功能的唯一出口
你的ShowXrayImage()方法是所有图像显示的唯一入口,而它的核心就是:
csharp
_halconWinFormsControl.HalconWindow.ClearWindow(); // 清屏
_halconWinFormsControl.HalconWindow.DispObj(enhanceImage); // 显示图像
覆盖场景:
测试图像按钮 → 直接调用
点位扫描到位 → 自动调用
连续扫描移动中 → 循环调用
3. 安全机制的可视化保障
急停、限位报警时,通过控件显示报警状态,让操作员一眼看到问题:
csharp
_halconWinFormsControl.HalconWindow.ClearWindow();
_halconWinFormsControl.HalconWindow.DispText("限位报警", "window", 12, 12, "red");
启动轴状态实时监控
3 个核心作用
1. 实时 UI 显示(仪表盘功能)
你界面上的这行文字:
轴状态:运行中|X:50.0 Y:0.0
就是这个方法每 200ms 刷新出来的。
没有它,界面上的轴坐标 / 状态永远不会变。
2. 安全保护(保镖功能)→ 工业设备最重要
轴如果一直往前走,会撞坏机械结构!
这个方法实时盯着限位开关:
一旦触发 LimitAlarm(超范围)
自动调用急停 EmergencyStop()
立刻停机,保护设备
3. 联动业务逻辑
点位扫描:判断轴是否到位 → 触发采图
连续扫描:实时获取轴位置 → 计算进度条
报警 / 复位:联动界面状态切换