Control de imágenes Halcon: Monitoreo en tiempo real del estado del eje

Control de imágenes Halcon

El control de imágenes Halcon es un contenedor de interfaz gráfica desarrollado por MVTec para plataformas C#/.NET. Se trata de un componente UI que encapsula el motor de renderizado de Halcon, permitiendo mostrar y manipular imágenes procesadas por Halcon dentro de interfaces WPF o WinForms.

Tres funciones clave: capacidades industriales esenciales

1. Visualización de imágenes: el "ojo" del sistema de visión

Función principal: mostrar imágenes procesadas por Halcon (imágenes en escala de grises, color, profundidad, etc.) Ejemplo de implementación:

controlHalcon.HalconWindow.DispObj(imagenProcesada); // Mostrar imagen de rayos X mejorada


Necesidad técnica: los controles estándar de WPF no pueden mostrar objetos HImage de Halcon, siendo este el único canal oficial para la visualización.

2. Dibujo de elementos: el "anotader" de resultados

Función principal: dibujar formas (rectángulos, círculos, texto) para visualizar resultados de detección Ejemplo de implementación:

controlHalcon.HalconWindow.SetColor("green"); // Cambiar color
controlHalcon.HalconWindow.DispRectangle1(120, 120, 380, 680); // Dibujar región de interés


Valor industrial: permite identificar posiciones de defectos, áreas de interés (ROI) y resultados de medición de forma visual.

3. Integración con procesamiento de imágenes: puente entre algoritmos y visualización

Función principal: conectar algoirtmos de Halcon (ruido, contraste, segmentación) con la visualización en tiempo real Ejemplo de implementación:

imagenLimpia = imagenOriginal.MeanImage(3, 3); // Algoritmo de reducción de ruido
imagenMejorada = imagenLimpia.ScaleImage(1.5, 0); // Ajuste de contraste
controlHalcon.HalconWindow.DispObj(imagenMejorada); // Mostrar resultado


Ventaja clave: no requiere conversión de formato de imagen, mostrando directamente los resultados de los algoritmos.

4. Retroalimentación de estado: registro visual del proceso

Función principal: mostrar información de progreso y estado en tiempo real Ejemplo de uso:

  • Mostrar imagen al completar escaneo de posición
  • Actualizar imagen cada 200ms durante escaneo continuo
  • Mostrar alerta al activar límite Valor industrial: permite a los operadores detectar anomalías rápidamente.

5. Gestión de recursos: guardian de la memoria

Función principal: manejar recursos del entorno Halcon para evitar fugas de memoria Ejemplo de uso: el control libera automáticamente el entorno Halcon al destruirse, sin necesidad de llamadas manuales a CloseWindow Aviso crucial: nunca llamar a OpenWindow manualmente (el control ya lo inicializa), de lo contrario se generará un error de parámetro.

En tu sistema de detección de rayos X: función crítica

1. Inicialización al inicio del programa

public MainViewModel(ControlHalcon controlHalcon)
{
    this.controlHalcon = controlHalcon; // Vincular control, obligatorio
    Cargar(); // Mostrar "listo" tras inicialización
}


Función: sin este control, el sistema visual sería "ciego" y no podría mostrar imágenes de rayos X.

2. Único punto de salida para funciones visuales

El método ShowXrayImage() es la única entrada para mostrar imágenes, cuyo núcleo es:

controlHalcon.HalconWindow.ClearWindow(); // Limpiar pantalla
controlHalcon.HalconWindow.DispObj(imagenProcesada); // Mostrar imagen


Escenarios cubiertos:

  • Botón de imagen de prueba → llamada directa
  • Posición alcanzada → llamada automática
  • Escaneo continuo → llamada repetida

3. Garantía de seguridad visual

En caso de emergencia o alarma de límite, el control muestra el estado:

controlHalcon.HalconWindow.ClearWindow();
controlHalcon.HalconWindow.DispText("Alarma de límite", "ventana", 12, 12, "rojo");


Monitoreo en tiempo real del estado del eje

Tres funciones críticas

1. Visualización en tiempo real (función de panel de instrumentos)

Este texto en tu interfaz: Eje: en ejecución | X:50.0 Y:0.0 se actualiza cada 200ms mediante este método. Sin él, las coordenadas del eje y el estado nunca cambiarían.

2. Protección segura (función de guardián) → más importante en equipos industriales

Si el eje avanza continuamente, podría dañar la estructura mecánica. Este método supervisa el interruptor de límite:

  • Al activar LimitAlarm (fuera de rango)
  • Llama automáticamente a EmergencyStop()
  • Detiene el sistema inmediatamente, protegiendo el equipo

3. Integración con lógica de negocio

  • Escaneo de posición: verificar si el eje está en posición → disparar captura de imagen
  • Escaneo continuo: obtener posición del eje en tiempo real → calcular barra de progreso
  • Alarma/Reinicio: sincronizar cambios de estado en la interfaz

Etiquetas: Halcon C# .NET WPF WinForms

Publicado el 9-4 05:08