> 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/roi-processing/image-roi-select-multi.md).

# Image ROI Select Multi

Bloque interactivo para seleccionar y editar múltiples Regiones de Interés (ROIs) rectangulares en una imagen. Dibuja, mueve y cambia el tamaño de los rectángulos directamente en la vista previa de la imagen para obtener recortes y coordenadas de rectángulos en píxeles que se usarán en pasos posteriores del flujo.

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

`Image` Conecta una imagen en color o en escala de grises que se usará como fuente para la selección de ROIs.

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

`Images` Imagen recortada para cada ROI (lista).\
`Rectangles` Rectángulos en píxeles para cada ROI (lista).\
`Selected Image` Recorte para el ROI actualmente seleccionado (imagen única o None).\
`Selected Rectangle` Rectángulo en píxeles del ROI seleccionado (rectángulo único o None).

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

* Draw: haz click y arrastra en un área vacía de la imagen para crear un nuevo ROI.
* Move: haz click y arrastra dentro de un rectángulo para moverlo.
* Resize: haz click y arrastra los bordes o las esquinas del rectángulo para cambiar su tamaño.
* `Ctrl` Mantén pulsado mientras arrastras para forzar la creación de un nuevo rectángulo (incluso si estás sobre un ROI existente).
* `C` Pulsa para borrar todos los ROIs.
* `U` Pulsa para deshacer el último ROI creado.
* `Delete` / `Backspace` Pulsa para eliminar el ROI seleccionado.
* `Escape` Pulsa para cancelar la selección/arrastre.

La vista previa muestra superposiciones y manejadores para indicar estados de hover, selección y previsualización.

## 🎨 Características <a href="#features" id="features"></a>

* Edición multi-ROI: crea múltiples ROIs rectangulares en una misma sesión de imagen.
* Previsualización en vivo: superposición interactiva y actualizaciones de vista previa mientras editas.
* Salidas con precisión de píxeles: `Rectangles` y `Selected Rectangle` se devuelven en coordenadas de píxeles relativas a la imagen fuente.
* Interfaz responsiva: la vista previa se redimensiona para ajustarse al área del bloque y mantiene las superposiciones consistentes.
* Serialización: los ROIs y la selección se preservan al guardar/cargar un escenario.

## 📊 How it runs <a href="#evaluation" id="evaluation"></a>

* Cuando llega una imagen al input `Image`, el bloque la almacena como fuente actual y actualiza la vista previa.
* El bloque convierte las definiciones de ROI actuales a rectángulos en píxeles usando el tamaño de la imagen fuente y produce las salidas: `Images` (recortes por ROI), `Rectangles` (coordenadas en píxeles), `Selected Image` y `Selected Rectangle`.
* Si no hay imagen conectada, el bloque emite listas vacías y valores None (sin recortes).

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

1. Conecta un bloque que genere imágenes al input `Image` (cámara, loader, stream).
2. Haz click y arrastra en la vista previa para crear ROIs. Usa los bordes/esquinas para ajustar el tamaño.
3. Haz click dentro de un rectángulo para seleccionarlo; el recorte seleccionado estará disponible en `Selected Image`.
4. Usa los atajos de teclado (`C`, `U`, `Delete`/`Backspace`, `Escape`) y mantén `Ctrl` para modificar el comportamiento de creación.
5. Usar las salidas en bloques posteriores para analizar o guardar los recortes.

## 💡 Consejos y trucos <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* Inspección rápida: conecta la salida `Selected Image` al bloque Show Image para previsualizar el recorte seleccionado en un visor más grande.
* Procesamiento por lotes: alimenta la salida `Images` a Collage Images para crear una vista combinada de todos los recortes, o a Image Logger / Image Write para guardar los recortes automáticamente.
* Análisis focalizado: usa la salida `Rectangles` como entrada a Get ROI si quieres aplicar la misma lista de rectángulos a otras imágenes (por ejemplo series temporales o distintos fotogramas).
* Combinar con detectores: crea ROIs para localizar áreas de interés y luego envía los recortes (`Images`) a bloques como Find Object, Feature Detector, Blob Detector u OCR para ejecutar detección/reconocimiento específico por recorte.
* Visualización: dibuja los `Rectangles` devueltos sobre la imagen fuente usando Draw Rectangle o Draw Detections para ver los resultados junto a otras anotaciones.
* Preprocesado: antes de la selección manual de ROIs puedes preparar la imagen fuente con Blur, Image Threshold o HSV Filter para que las estructuras sean más fáciles de ver y seleccionar.
* Uso en pipelines con bucles: pasa los recortes de ROI a bloques de Analysis o AI (por ejemplo Object Detection o Background Removal) para crear flujos de procesamiento por región eficientes.

## 🛠️ Solución de problemas <a href="#troubleshooting" id="troubleshooting"></a>

* Sin vista previa o controles deshabilitados: asegúrate de que hay una imagen válida conectada al input `Image`.
* ROIs no exportados correctamente: verifica que la imagen fuente tenga las dimensiones correctas; el bloque emite rectángulos en píxeles relativos al tamaño de la imagen de entrada.
* Comportamiento de selección inesperado: mantén `Ctrl` mientras arrastras para forzar la creación de un nuevo ROI en lugar de modificar uno existente.
* Demasiados o faltantes ROIs en pasos posteriores: confirma que estás usando la salida correcta (`Images` vs `Selected Image`) y que los bloques aguas abajo aceptan entradas en formato lista cuando alimentas múltiples recortes.
