> 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/detectors/line-detector.md).

# Line Detector

Este bloque de función detecta y resalta líneas rectas en una imagen de entrada. Ofrece controles sencillos para orientar la detección hacia una orientación preferida, ajustar la sensibilidad y elegir una única línea "seleccionada" según diferentes modos de selección. El bloque también genera una visualización de histograma de los valores de intensidad a lo largo de la línea elegida para ayudar en análisis posteriores.

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

`Image Any` Imagen a analizar en busca de estructuras lineales (color o escala de grises).

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

`Lined Image` Imagen con las líneas detectadas visualizadas.

`Histogram Image` Imagen del histograma de intensidades con opción de superponer estadísticas para la línea seleccionada.

`Number of Lines` Recuento de líneas detectadas tras el filtrado aplicado.

`Selected Line` Una única línea seleccionada (shape) elegida según el modo de selección seleccionado.

`Lines` Todas las líneas detectadas (shapes), devueltas como lista cuando procede.

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

`Preferred Angle` Selecciona la orientación (en grados) que más te interesa (0–180). Esto sesga la detección hacia líneas con esa orientación.

`Tolerance (deg)` Define cuánto puede desviarse una línea del ángulo preferido. Valores pequeños limitan la detección a líneas cercanas a la orientación preferida.

`Line Selection` Elige cómo seleccionar una única línea representativa entre varias detecciones. Opciones: First Position, Last Position, Longest, Shortest, Middle Position y Median Length.

`Hough Threshold (Votes)` Ajusta la sensibilidad de la detección de líneas. Valores altos hacen la detección más estricta (menos líneas); valores bajos detectan líneas más débiles.

`Min. Line Length (pixels)` Ignora segmentos muy cortos estableciendo una longitud mínima para las líneas detectadas.

`Max. Line Gap (pixels)` En detección basada en segmentos, controla qué tan separados pueden estar segmentos rotos para que se unan como una sola línea.

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

* La imagen de entrada se prepara para el análisis de líneas (conversión y mejora según sea necesario).
* Se localizan bordes y segmentos prominentes en la imagen.
* Los segmentos detectados se recopilan y (opcionalmente) se filtran para mantener los cercanos a `Preferred Angle` dentro de la `Tolerance (deg)`.
* Se selecciona una línea según el control `Line Selection`.
* Se renderiza la imagen de resultado con todas las líneas encontradas y la línea seleccionada resaltada.
* Se produce una imagen de histograma de los valores de intensidad; si hay una línea seleccionada, el histograma también mostrará estadísticas básicas (media y opcionalmente desviación estándar) para los píxeles muestreados a lo largo de esa línea.

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

* Salida visual que dibuja todas las líneas detectadas y resalta una línea elegida para inspección rápida.
* Modos de selección flexibles para elegir la línea única que mejor se ajuste a tu tarea.
* Filtrado por ángulo para centrarse en una orientación deseada.
* Salida de histograma vinculada a la línea seleccionada para un análisis rápido de intensidad.
* Parámetros ajustables para equilibrar sensibilidad y tolerancia al ruido.

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

1. Conecta un bloque que provea imagen al input `Image Any` (por ejemplo, una cámara o un cargador de imágenes).
2. Ajusta `Preferred Angle` a la orientación esperada en la escena.
3. Reduce `Tolerance (deg)` para enfocarte en esa orientación, o incrementa para aceptar ángulos más variados.
4. Ajusta `Hough Threshold (Votes)`, `Min. Line Length` y `Max. Line Gap` para encontrar un equilibrio entre perder líneas débiles e incluir ruido.
5. Usa `Line Selection` para elegir la línea única que tenga sentido para tu tarea.
6. Inspecciona las salidas `Lined Image` y `Histogram Image`; emplea los shapes de línea en procesos posteriores.

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

* Para imágenes con ruido, añade un bloque `Blur` antes de este para suavizar y mejorar la estabilidad de la detección.
* Si las imágenes son muy grandes, usa `Image Resize` para bajar resolución y acelerar la detección manteniendo estructuras relevantes.
* Para centrar el procesamiento en una región concreta, recorta primero con `Image ROI Select` o `Get ROI` y ejecuta este bloque sobre la imagen recortada.
* Tras la detección, combina `Selected Line` o `Lines` con `Line Geometry` para medir ángulos, distancias, intersecciones o extraer coordenadas.
* Para depuración visual, conecta `Lined Image` a `Show Image` para ver resultados en un visor más grande, o guarda ejemplos con `Image Logger` o `Image Write`.
* Usa `Histogram On Line` cuando necesites análisis de picos más especializado a lo largo de una única línea de escaneo; complementa el histograma que produce este bloque.
* Para dibujar o anotar líneas de medición interactivamente, combínalo con `Draw Line` y luego analiza la línea dibujada con este bloque.

(hints above use only blocks from the provided list)

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

* No se detectan líneas: baja `Hough Threshold (Votes)`, disminuye `Min. Line Length` o aumenta `Tolerance (deg)` para aceptar más candidatos.
* Demasiadas líneas espurias: incrementa `Hough Threshold (Votes)` o sube `Min. Line Length` para ignorar segmentos ruidosos pequeños.
* La línea seleccionada no es la esperada: prueba otros modos en `Line Selection` (por ejemplo, Longest o Middle Position) o ajusta el ángulo preferido y la tolerancia.
* El histograma parece no corresponder con la línea seleccionada: confirma que la línea seleccionada esté completamente dentro del área de la imagen; recorta con `Image ROI Select` si es necesario.

Si necesitas resultados más estables en producción, preprocesa las imágenes (iluminación, contraste) y prueba los rangos de parámetros con muestras representativas antes de desplegar.
