> 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/image-transformations/transformation-filters/alignment.md).

# Alignment

Este bloque de función alinea una imagen de escena usando un conjunto ordenado de plantillas de referencia (ROIs) y sus rectángulos delimitadores correspondientes. Usa este bloque para corregir errores de traslación y rotación de modo que la imagen de la escena coincida con un diseño de referencia conocido.

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

`Scene Image` La imagen que se va a alinear. Proporciona una sola imagen (no vacía).

`Reference ROIs` Una o más imágenes de plantilla ordenadas usadas para el emparejamiento (proporcionarlas como una lista). El orden define la correspondencia con los bounding boxes.

`Reference BBoxes` Uno o más bounding boxes ordenados que emparejan con las `Reference ROIs` (proporcionarlos como una lista). El orden debe coincidir con las ROIs.

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

`Aligned Image` La imagen de la escena después de aplicar la corrección de alineamiento calculada.

`Translation` La corrección de traslación aplicada como par (x, y).

`Angle` La corrección de rotación aplicada en grados.

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

`Mode` Elige entre alineamiento usando solo traslación (desplazamiento del centroid) o traslación más ángulo (rotación + traslación). Usa `Translation` cuando solo se necesita desplazar y `Translation + Angle` cuando se requiere corregir rotación.

`Match Threshold %` Establece la puntuación mínima de coincidencia requerida para cada ROI de referencia. Valores más altos exigen coincidencias más fuertes.

`Include Flipped` Alternar para permitir versiones horizontalmente volteadas de las plantillas ROI durante el emparejamiento (útil cuando los objetos pueden aparecer en espejo).

`Method` Elige el método de template matching. Diferentes métodos pueden ser más rápidos o dar mejores resultados según la textura y el contraste de tus referencias.

`Color Mode` Elige entre `Gray` (más rápido) y `BGR` (puede mejorar la precisión para plantillas en color).

`Tolerance (+/- px)` Establece una tolerancia en píxeles para el residuo permitido después del alineamiento. Usa valores mayores para aceptar ajustes más laxos, valores menores para exigir mayor precisión.

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

* Emparejamiento por referencia ordenada: el orden de ROI y bbox determina la correspondencia usada para calcular el alineamiento.
* Dos modos de operación: solo traslación o traslación + ángulo para corrección de rotación.
* Emparejamiento opcional con plantillas volteadas para manejar apariencias en espejo.
* Varios métodos de emparejamiento y modos de color para equilibrar velocidad y precisión.
* Controles numéricos con validación inmediata para ayudar a evitar errores de configuración.

## 📊 Cómo funciona <a href="#evaluation" id="evaluation"></a>

* El bloque requiere una `Scene Image` válida y listas coincidentes para `Reference ROIs` y `Reference BBoxes`.
* Cada ROI se empareja con la escena en el orden proporcionado; el bbox correspondiente da la ubicación esperada.
* Si las coincidencias cumplen el `Match Threshold %`, el bloque calcula la traslación necesaria (y el ángulo cuando está seleccionado) para alinear la escena.
* El bloque devuelve la `Aligned Image` corregida además de la `Translation` y el `Angle` aplicados.
* Si faltan entradas, están vacías o las cuentas de ROIs y BBoxes no coinciden, el bloque mostrará un mensaje de error y se detendrá hasta corregirlo.

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

1. Prepara un conjunto de referencia claro: crea pequeñas ROIs plantilla que identifiquen de forma única puntos fijos en la escena.
2. Proporciona las definiciones de bbox que coincidan en el mismo orden que las ROIs.
3. Elige `Mode` según si necesitas corrección de rotación.
4. Ajusta `Match Threshold %` a un valor que acepte coincidencias reales y rechace similitudes accidentales.
5. Opcionalmente activa `Include Flipped` si pueden aparecer versiones espejadas.
6. Ejecuta el bloque e inspecciona la `Aligned Image` y las salidas numéricas para verificar los resultados.

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

* Usa `Image ROI` o `Image ROI Select` para crear plantillas de referencia precisas a partir de una imagen de ejemplo antes de introducirlas en `Reference ROIs`.
* Cuando necesites definir múltiples regiones de forma interactiva, usa `Image ROI Polygon Multi` para guardar varias ROIs de referencia.
* Para verificar visualmente los resultados de alineamiento, conecta la salida `Aligned Image` a `Show Image` para previsualizar las correcciones.
* Para un emparejamiento más robusto en escenas con textura, prueba cambiar `Color Mode` a `BGR` y experimenta con distintos `Method`.
* Si necesitas extracción automática de plantillas, usa `Find Object` para localizar instancias y luego deriva ROIs a partir de las coordenadas reportadas.
* Guarda las salidas alineadas usando `Image Logger` o `Image Write` cuando quieras conservar registros de los fotogramas corregidos.

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

* Mismatch entre ROIs y BBoxes\
  Asegúrate de que el número y orden de `Reference ROIs` y `Reference BBoxes` sean idénticos. El bloque depende del orden para definir la correspondencia.
* No hay suficientes referencias para el modo de rotación\
  Si seleccionas `Translation + Angle`, proporciona al menos dos referencias distintas; de lo contrario la rotación no puede resolverse de forma fiable.
* Pocos emparejamientos o emparejamientos fallidos\
  Aumenta el `Match Threshold %` si obtienes falsos positivos, o disminúyelo ligeramente si faltan referencias genuinas. Prueba cambiar `Method` o `Color Mode` para obtener mejores resultados.
* Residuo inesperado después del alineamiento\
  Incrementa `Tolerance (+/- px)` si se aceptan pequeños errores de posicionamiento, o refina tus `Reference ROIs` para que sean más distintivas y lograr mayor precisión.
* Verificación visual\
  Si el alineamiento parece incorrecto, previsualiza las plantillas intermedias y la `Aligned Image` usando `Show Image` para diagnosticar qué referencia falló al coincidir.
