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

# Circle Detector

Detecta patrones circulares en una imagen y obtiene detalles visuales y numéricos sobre los círculos encontrados. Este bloque está optimizado para características circulares (p. ej., piezas circulares, orificios, marcadores redondos) y expone controles deslizantes intuitivos para adaptar la sensibilidad y los rangos de tamaño.

## 📥 Inputs

* `Image Any` La imagen que se va a analizar en busca de formas circulares.

## 📤 Outputs

* `Result` Imagen anotada con los círculos detectados dibujados.
* `Positions` Lista de coordenadas del centro de los círculos (x, y) encontrados en la imagen.
* `Number of Circles` Conteo de círculos detectados.
* `Circles` Formas detalladas de los círculos (centro y radio) para procesamiento posterior.

## 🕹️ Controls

* `dp` Proporción inversa entre la resolución del acumulador y la resolución de la imagen (afecta la sensibilidad y el manejo de escalas).
* `Edge Detection` Controla la sensibilidad de la detección de bordes interna usada para encontrar círculos.
* `Threshold` Controla el umbral del acumulador que decide si un candidato a círculo es aceptado.
* `Min Distance` Distancia mínima entre centros de círculos (ayuda a evitar detecciones duplicadas).
* `Min Radius (% width)` Radio mínimo a considerar, definido como porcentaje del ancho de la imagen.
* `Max Radius (% width)` Radio máximo a considerar, definido como porcentaje del ancho de la imagen.

Ajusta estos controles de forma interactiva para adaptar la detección a tu cámara, iluminación y tamaños de objetos.

## ⚙️ Cómo funciona

Cuando el bloque recibe una imagen, la convierte a escala de grises (preprocesado visual) y busca patrones circulares según la configuración actual de los deslizadores. Los círculos detectados se dibujan en una copia de la imagen y el bloque emite la imagen anotada, la lista de posiciones de centros, el conteo total y las formas de los círculos (centro + radio) para procesamiento adicional.

## ✨ Features

* Controles deslizantes ajustables en tiempo real para una sintonía rápida de parámetros.
* Emite tanto resultados visuales como datos estructurados (posiciones, conteos, formas de círculos).
* Los parámetros de radio expresados en porcentajes facilitan la adaptación a diferentes tamaños de imagen.
* Evita detecciones duplicadas mediante una distancia mínima de centros configurable.

## 📝 Usage

1. Alimenta una imagen en la entrada `Image Any`.
2. Usa `Min Radius (% width)` y `Max Radius (% width)` para limitar las detecciones al rango de tamaño esperado del objeto.
3. Ajusta `Edge Detection` y `Threshold` para reducir falsos positivos o recuperar círculos perdidos.
4. Inspecciona los resultados visualmente a través de la salida `Result` y utiliza `Positions` o `Circles` para automatización o conteo.

## 💡 Tips and Tricks

* Preprocesa imágenes con ruido usando `Blur` o `Denoising` para reducir detecciones espurias y suavizar bordes.
* Si los objetos de interés ocupan solo parte de la escena, recorta con `Image ROI Select` antes de la detección para acelerar el procesamiento y reducir falsos positivos.
* Usa `Image Resize` para acelerar la detección durante la sintonía de parámetros y luego vuelve a resolución completa para ejecuciones finales.
* Combínalo con `Image Threshold` o `Morphological Transformations` para resaltar bordes circulares cuando el contraste sea bajo.
* Valida o filtra detecciones combinando las salidas con `Blob Detector` o `Find Contour` para confirmar propiedades de forma o área.
* Superpone resultados para presentación usando `Draw Detections` e inspecciónalos con `Show Image` para una vista previa más amplia.

Pipelines recomendados comunes:

* Para marcadores circulares pequeños: `Image ROI Select` → `Blur` → este bloque → `Draw Detections` → `Show Image`.
* Para anillos de bajo contraste: `Adjust Colors` → `Image Threshold` → `Morphological Transformations` → este bloque.

## 🛠️ Troubleshooting

* No se detectan círculos: aumenta `Edge Detection` o disminuye `Threshold`; asegúrate de que `Min Radius` y `Max Radius` incluyan el tamaño real del objeto.
* Muchos falsos positivos: sube `Threshold` o aumenta `Min Distance` para evitar detecciones duplicadas/cercanas; prueba con `Image Threshold` o `Morphological Transformations` para limpiar la imagen.
* Detecciones solapadas/duplicadas: incrementa `Min Distance` para que los centros candidatos estén más separados.
* Procesamiento lento: reduce el tamaño de la imagen con `Image Resize` o limita el área de búsqueda con `Image ROI Select`.
* Resultados inconsistentes bajo distinta iluminación: prueba con `Adjust Colors` o usa `Blur`/`Denoising` para estabilizar la entrada antes de la detección.
