> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/spanish/function-blocks/blocks-reference/detections-shapes/draw/draw-detections.md).

# Draw Detections

Este bloque de función superpone los resultados de detección sobre una imagen dibujando rectángulos y un veredicto textual (Ok / Nok) para cada objeto detectado. Está pensado como un paso final de visualización o inspección en una tubería de visión.

## 📥 Inputs <a href="#inputs" id="inputs"></a>

* `Image` — Imagen principal sobre la que se dibujarán las anotaciones. (socket de entrada)
* `Coordinate_List` — Lista de coordenadas de rectángulos a dibujar. Cada elemento debe ser un par de puntos que definan un rectángulo. (socket de entrada)
* `Object_Count` — Lista de contadores/flags correspondiente a cada rectángulo. Se utiliza para determinar estado Ok (verde) o Nok (rojo). (socket de entrada)
* `Trigger` — Booleano para habilitar el dibujo. Cuando no está activo, el bloque no produce salida. (socket de entrada)

## 📤 Outputs <a href="#outputs" id="outputs"></a>

* `Result Image` — La imagen con los rectángulos y textos de estado dibujados. (socket de salida)

## 🕹️ Controls <a href="#controls" id="controls"></a>

Este bloque no tiene controles internos en la interfaz. Su comportamiento se controla completamente mediante sus sockets de entrada.

## 🎨 Features <a href="#features" id="features"></a>

* Superposición visual de estado que dibuja rectángulos coloreados y etiquetas de texto en la imagen de entrada.
* Codificación por color: verde para Ok, rojo para Nok — determinado a partir de los valores en `Object_Count`.
* Maneja múltiples detecciones iterando sobre las listas de coordenadas y conteos.
* Emite advertencias cuando las longitudes de las listas no coinciden o cuando los datos de coordenadas son inválidos.
* Requiere un `Trigger` activo para producir una salida; de lo contrario no genera resultado.

## ⚙️ Mecanismo de ejecución <a href="#running-mechanism" id="running-mechanism"></a>

* Cuando el bloque recibe datos y la entrada `Trigger` es True, copia la `Image` provista y dibuja un rectángulo por cada entrada en `Coordinate_List`.
* Para cada rectángulo, el bloque comprueba el valor correspondiente en `Object_Count`. Si el valor indica presencia (no cero), el rectángulo y la etiqueta se dibujan en verde con el texto "Ok". Si el valor es cero o falta, el rectángulo y el texto se dibujan en rojo con el texto "Nok".
* Si el número de coordenadas y conteos difiere, el bloque avisará y emparejará ítems usando la longitud más corta. Las entradas de coordenadas inválidas se omiten con una advertencia.
* La imagen anotada final se envía por el socket de salida `Result Image`.

## 📝 Instrucciones de uso <a href="#usage" id="usage"></a>

1. Alimente una imagen fuente en `Image`.
2. Proporcione listas coincidentes en `Coordinate_List` y `Object_Count` (se recomienda que tengan la misma longitud).
3. Active `Trigger` para generar la imagen resultante anotada.
4. Conecte `Result Image` a un bloque visor o de guardado para inspeccionar o almacenar los fotogramas anotados.

## 💡 Tips and Tricks <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* Use `Object Detection` o `Object Detection - Custom` (o `Object Detection (D-FINE)`) para generar listas de rectángulos y conteos, y conecte sus salidas de rectángulos y conteos a `Coordinate_List` y `Object_Count`.
* Combine con `Object_Detection_Tracker` para dibujar rectángulos rastreados con posiciones consistentes; alimente las salidas de rectángulos rastreados a este bloque para superposiciones Ok/Nok por objeto.
* Use `Rectangles in Rectangle` o `Check Area` para filtrar detecciones antes de dibujar (excluir detecciones fuera de una región de interés).
* Previsualice resultados con `Show Image` y guárdelos con `Image Logger` o `Image Write` para registro.
* Controle cuándo aparecen las anotaciones usando `Logic Input` o detectores de borde como `Rising Edge` para dibujar solo en fotogramas seleccionados.
* Si necesita dibujar rectángulos individuales directamente, considere `Draw Rectangle`; use este bloque cuando tenga múltiples detecciones y quiera marcado Ok/Nok automático.

## 🛠️ Troubleshooting <a href="#troubleshooting" id="troubleshooting"></a>

* Sin salida: asegúrese de que `Trigger` sea True y que haya datos de imagen válidos conectados a `Image`.
* Listas desajustadas: si las longitudes de `Coordinate_List` y `Object_Count` difieren, verá advertencias y algunos ítems podrán ser ignorados — asegúrese de que los bloques aguas arriba produzcan listas alineadas.
* Coordenadas inválidas: si las entradas de coordenadas están mal formadas, el bloque las omitirá y mostrará una advertencia; verifique el formato que proviene de los bloques de detección.
* Para persistir o inspeccionar resultados fotograma a fotograma, conecte `Result Image` a `Show Image` o a bloques de guardado como `Image Logger`.
