> 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/french/function-blocks/blocks-reference/detections-shapes/detectors/circle-detector.md).

# Circle Detector

Détectez des motifs circulaires dans une image et obtenez des détails visuels et numériques sur les cercles trouvés. Ce bloc est optimisé pour les éléments circulaires (par ex. pièces rondes, trous, repères circulaires) et propose des curseurs intuitifs pour adapter la sensibilité et les plages de taille.

## 📥 Entrées <a href="#inputs" id="inputs"></a>

* `Image Any` L'image à analyser pour détecter des formes circulaires.

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

* `Result` Image annotée avec les cercles détectés dessinés.
* `Positions` Liste des coordonnées des centres des cercles (x, y) trouvés dans l'image.
* `Number of Circles` Nombre total de cercles détectés.
* `Circles` Description détaillée des cercles (centre et rayon) pour un traitement en aval.

## 🕹️ Contrôles <a href="#controls" id="controls"></a>

* `dp` Rapport inverse entre la résolution de l'accumulateur et la résolution de l'image (impacte la sensibilité et l'échelle de détection).
* `Edge Detection` Contrôle la sensibilité de la détection de contours utilisée pour la recherche de cercles.
* `Threshold` Seuil de l'accumulateur qui décide si un cercle candidat est accepté.
* `Min Distance` Distance minimale entre les centres des cercles (évite les détections en double).
* `Min Radius (% width)` Rayon minimal à considérer, exprimé en pourcentage de la largeur de l'image.
* `Max Radius (% width)` Rayon maximal à considérer, exprimé en pourcentage de la largeur de l'image.

Ajustez ces contrôles de manière interactive pour adapter la détection à votre caméra, éclairage et tailles d'objets.

## ⚙️ Fonctionnement <a href="#running-mechanism" id="running-mechanism"></a>

Quand le bloc reçoit une image, il convertit l'image en niveaux de gris (prétraitement visuel) puis recherche des motifs circulaires selon les paramètres des curseurs. Les cercles détectés sont tracés sur une copie de l'image et le bloc émet l'image annotée, la liste des positions des centres, le nombre total et les formes des cercles (centre + rayon) pour un traitement ultérieur.

## ✨ Fonctionnalités <a href="#features" id="features"></a>

* Curseurs ajustables en temps réel pour un réglage rapide des paramètres.
* Sorties visuelles et données structurées (positions, compte, formes des cercles).
* Paramètres de rayon exprimés en pourcentages facilitant l'adaptation à différentes tailles d'image.
* Évite les détections en double grâce à une distance minimale configurable entre centres.

## 📝 Utilisation <a href="#usage" id="usage"></a>

1. Alimentez le bloc avec une image via l'entrée `Image Any`.
2. Utilisez `Min Radius (% width)` et `Max Radius (% width)` pour limiter les détections à la plage de tailles attendue.
3. Ajustez `Edge Detection` et `Threshold` pour réduire les faux positifs ou récupérer des cercles manqués.
4. Inspectez visuellement les résultats via la sortie `Result` et utilisez `Positions` ou `Circles` pour l'automatisation ou le comptage.

## 💡 Astuces <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* Prétraitez les images bruyantes avec `Blur` ou `Denoising` pour réduire les détections parasites et lisser les contours.
* Si les objets d'intérêt n'occupent qu'une partie de la scène, recadrez avec `Image ROI Select` avant la détection pour accélérer le traitement et réduire les faux positifs.
* Utilisez `Image Resize` pour accélérer le réglage des paramètres, puis repassez en pleine résolution pour les exécutions finales.
* Combinez avec `Image Threshold` ou des `Morphological Transformations` pour renforcer les bords circulaires lorsque le contraste est faible.
* Validez ou filtrez les détections en combinant les sorties avec `Blob Detector` ou `Find Contour` pour confirmer la forme ou l'aire.
* Superposez les résultats pour présentation avec `Draw Detections` et visualisez-les dans une fenêtre plus grande via `Show Image`.

Pipelines courants recommandés :

* Pour petits repères circulaires : `Image ROI Select` → `Blur` → ce bloc → `Draw Detections` → `Show Image`.
* Pour anneaux à faible contraste : `Adjust Colors` → `Image Threshold` → `Morphological Transformations` → ce bloc.

## 🛠️ Dépannage <a href="#troubleshooting" id="troubleshooting"></a>

* Aucuns cercles détectés : augmentez `Edge Detection` ou réduisez `Threshold` ; vérifiez que `Min Radius` et `Max Radius` incluent la taille réelle de l'objet.
* Trop de faux positifs : augmentez `Threshold` ou `Min Distance` pour éviter les détections proches/dupliquées ; essayez `Image Threshold` ou des `Morphological Transformations` pour nettoyer l'image.
* Détections superposées/dupliquées : augmentez `Min Distance` afin que les centres candidats soient plus éloignés.
* Traitement lent : réduisez la taille de l'image avec `Image Resize` ou limitez la zone de recherche avec `Image ROI Select`.
* Résultats incohérents selon l'éclairage : essayez `Adjust Colors` ou utilisez `Blur`/`Denoising` pour stabiliser l'entrée avant détection.
