# Find Contour

Esta función detecta y selecciona contornos en una imagen en escala de grises. Úsala para localizar formas, obtener su posición, área, rotación y ver una vista previa del contorno seleccionado sobre la imagen. Los límites de área ajustables y los métodos de aproximación te ayudan a filtrar y refinar los resultados.

## 📥 Entradas

`Image Gray`\
Imagen en escala de grises de entrada utilizada para la detección de contornos (imagen de un solo canal).

## 📤 Salidas

`Selected Contour`\
El contorno elegido (forma) según la selección manual o la selección automática.

`Contours`\
Lista de todos los contornos detectados que pasaron los filtros.

`Contour Image`\
Imagen previa con el contorno seleccionado dibujado y el centro marcado.

`Object Position`\
La posición del centro (x, y) del contorno seleccionado.

`Object Rotation`\
El ángulo de orientación del contorno seleccionado (grados).

`Object Area`\
El valor del área del contorno seleccionado (unidades en píxeles).

`Object Count`\
Número de contornos encontrados después del filtrado.

## 🕹️ Controles

`Minimum Contour Area (%)`\
Un control de rango horizontal para establecer el área mínima y máxima del contorno como porcentaje del área de la imagen; los contornos fuera de este rango se ignoran.

`Approximation Method`\
Un menú desplegable para elegir la estrategia de aproximación del contorno (afecta el nivel de detalle vs. simplificación).

`Contour Selection`\
Un menú desplegable que lista los contornos detectados (con porcentajes de área) para que puedas elegir uno para inspeccionar o medir.

## 🎨 Características

* Vista previa visual del contorno seleccionado con marcador de centro y líneas de contorno dibujadas.
* Filtrado basado en área para ignorar formas muy pequeñas o excesivamente grandes.
* Varias opciones de aproximación para controlar el detalle y suavizado del contorno.
* Salidas tanto geométricas (forma, centro, ángulo, área) como una lista de todos los contornos validados.
* Protección automática contra resultados abrumadores limitando el número de contornos procesados para mantener el rendimiento.

## ⚙️ Cómo funciona

Al ejecutarse, el bloque analiza la imagen en escala de grises suministrada, detecta contornos, los filtra según el rango de área configurado, los ordena por tamaño y deja disponible un contorno seleccionado para inspección. La imagen previa muestra el contorno seleccionado y su centro; además, el bloque exporta datos numéricos y de forma para procesamiento posterior.

## 💡 Consejos y trucos

* Preprocesa las imágenes con `Image Threshold`, `Image Adaptive Threshold` o `Blur` para mejorar la detección de contornos en entradas ruidosas.
* Usa `Image ROI Select` o `Image ROI` para recortar el área de interés antes de ejecutar este bloque y evitar contornos irrelevantes.
* Combínalo con `Approximate Contour`, `Minimum Rectangle`, `Minimum Ellipse` o `Minimum Circle` para obtener representaciones geométricas más simples del contorno seleccionado.
* Utiliza `Translate Shape` para trasladar las formas detectadas a un marco de coordenadas común cuando combines varias entradas.
* Visualiza o anota resultados con `Draw Rectangle`, `Draw Result On Image` o `Draw Detections` para superposiciones más claras en la interfaz.
* Si necesitas áreas poligonales como entradas o para limitar el análisis, combínalo con `Image ROI Polygon` o `Image ROI Polygon Multi`.
* Registra imágenes o resultados con `Image Logger`, `Image Write` o exporta datos numéricos con `CSV Export` / `Data to JSON`.
* Combínalo con `Find Object` (template matching) o `Feature Detector` para identificar objetos con mayor precisión tras un filtrado aproximado por contorno.
* Para sistemas de control de calidad, conéctalo aguas abajo a `Measure Object Distance`, `Check Area` o `Rectangles in Rectangle` para implementar lógica de aprobado/fallado.

## 🛠️ Solución de problemas

* Si no se encuentra ningún contorno, amplia el rango de `Minimum Contour Area (%)` o mejora el contraste de entrada con `Auto Contrast` o `Denoising`.
* Si aparecen muchos contornos pequeños espurios, aumenta el área mínima o aplica `Image Threshold` / `Blur` para reducir el ruido.
* Si los contornos aparecen demasiado detallados, elige un `Approximation Method` más simple para reducir el número de vértices y simplificar la forma.
