> 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/shape-analysis/approximate-contour.md).

# Approximate Contour

Ce bloc de fonction simplifie un contour donné en créant un polygone englobant avec un nombre réduit d'arêtes. Il visualise à la fois le contour original et l'approximation simplifiée, et fournit des informations géométriques telles que le centre, le périmètre et le nombre de sommets.

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

`Image Any`\
L'image utilisée pour la visualisation (dessine le contour original et l'approximation sur cette image).

`Contour`\
Le contour d'entrée à approximer (données de forme).

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

`Image Any`\
Image montrant le contour original et le polygone approximé avec des marqueurs de coins.

`Contour`\
Le contour approximé en sortie de type forme.

`Center`\
Le centroïde du contour approximé (x, y).

`Perimeter`\
La longueur du périmètre du contour approximé.

`Number of corners`\
Le nombre de sommets du polygone approximé.

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

`Epsilon`\
Curseur permettant de régler la tolérance d'approximation. Des valeurs plus élevées produisent des polygones plus simples avec moins de sommets ; des valeurs plus faibles conservent davantage de détails.

## ⚙️ Mécanisme d'exécution <a href="#running-mechanism" id="running-mechanism"></a>

* Lorsque le bloc s'exécute, il reçoit une image et un contour via ses entrées.
* Le bloc utilise le contrôle `Epsilon` pour déterminer le degré de simplification du contour (epsilon est appliqué en fonction du périmètre du contour).
* Il crée un polygone simplifié et dessine à la fois le contour original et l'approximation sur l'image fournie pour un retour visuel.
* Ensuite, il calcule le centroïde, le périmètre et le nombre de sommets du contour approximé, puis envoie ces valeurs via les sorties.

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

* Comparaison visuelle : le contour original (une couleur) et le polygone approximé (une autre couleur) sont affichés sur l'image de sortie, avec les points de coin marqués pour inspection rapide.
* Sorties numériques : position du centre, périmètre et nombre de sommets fournis pour la suite du traitement ou le journal.
* Approximation réglable : le curseur offre un moyen intuitif d'équilibrer simplification et fidélité.

## 📝 Instructions d'utilisation <a href="#usage" id="usage"></a>

1. Fournissez un contour (par exemple issu d'un bloc `Find Contour`) à l'entrée `Contour`.
2. Fournissez l'image à annoter à l'entrée `Image Any`.
3. Ajustez `Epsilon` jusqu'à ce que la forme approximée corresponde au niveau de détail souhaité.
4. Utilisez les sorties pour la visualisation, la mesure ou le traitement ultérieur.

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

* Pour obtenir des contours adaptés à l'approximation, utilisez d'abord le bloc `Find Contour`.
* Prétraitez l'image source avec `Blur`, `Image Threshold` ou `Morphological Transformations` pour réduire le bruit et obtenir des contours plus propres.
* Utilisez `Image ROI` ou `Image ROI Select` pour recadrer la zone d'intérêt avant la détection et l'approximation afin d'accélérer le traitement et d'éviter les formes non pertinentes.
* Après l'approximation, vous pouvez :
  * Convertir le contour approximé en rognage d'image avec `Contour to Image` pour une inspection ciblée.
  * Ajuster des formes englobantes simples en utilisant `Minimum Rectangle`, `Minimum Circle` ou `Minimum Ellipse` pour des mesures ou des tâches d'alignement.
  * Remplir la forme approximée avec `Fill Contour` si vous avez besoin d'un masque binaire de la région.
* Utilisez `Draw Rectangle`, `Draw Point` ou d'autres blocs de dessin pour superposer des annotations supplémentaires ou combiner avec des résultats de détection.
* Pour décaler des formes dans l'espace de coordonnées (ajustements ROI ou alignement), utilisez `Translate Shape`.

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

* Si le polygone approximé est trop grossier ou trop détaillé, ajustez progressivement le curseur `Epsilon` jusqu'à obtenir le nombre de sommets souhaité.
* Si les sorties de contour sont vides ou invalides, vérifiez que la source de contour (par exemple `Find Contour`) produit des formes valides et que les étapes de prétraitement fournissent une séparation claire avant-plan / arrière-plan.
* Si les marqueurs visuels sont mal positionnés après un recadrage ou des transformations de coordonnées, vérifiez que les blocs suivants (ROI, translation ou dessin) utilisent des systèmes de coordonnées cohérents.
