> 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/draw/draw-detections.md).

# Draw Detections

Cette fonction superpose les résultats de détection sur une image en traçant des rectangles et un verdict textuel (OK / Nok) pour chaque objet détecté. Elle est prévue comme étape finale de visualisation ou d'inspection dans une chaîne de traitement visuel.

## 📥 Entrées

* `Image`\
  Image principale sur laquelle dessiner les annotations. (prise d'entrée)
* `Coordinate_List`\
  Liste de coordonnées des rectangles à dessiner. Chaque élément doit être une paire de points définissant un rectangle. (prise d'entrée)
* `Object_Count`\
  Liste de compteurs/indicateurs correspondant à chaque rectangle. Sert à déterminer le statut OK (vert) ou Nok (rouge). (prise d'entrée)
* `Trigger`\
  Booléen pour activer le dessin. Si non actif, le bloc ne produit rien. (prise d'entrée)

## 📤 Sorties

* `Result Image`\
  L'image avec les rectangles et le texte de statut dessinés. (prise de sortie)

## 🕹️ Contrôles

Ce bloc n'a pas d'interface utilisateur interne. Son comportement est entièrement commandé via ses prises d'entrée.

## 🎨 Fonctionnalités

* Superposition visuelle qui trace des rectangles colorés et des étiquettes textuelles sur l'image d'entrée.
* Code couleur : vert pour OK, rouge pour Nok — déterminé à partir des valeurs de `Object_Count`.
* Gère plusieurs détections en itérant sur les listes de coordonnées et de compteurs.
* Émet des avertissements lorsque les longueurs de listes ne correspondent pas ou quand les coordonnées sont invalides.
* Nécessite un `Trigger` actif pour produire une sortie ; sinon aucun résultat n'est généré.

## ⚙️ Mécanisme d'exécution

* Lorsque le bloc reçoit des données et que `Trigger` est True, il copie l'`Image` fournie et trace un rectangle pour chaque entrée de `Coordinate_List`.
* Pour chaque rectangle, le bloc vérifie la valeur correspondante dans `Object_Count`. Si la valeur indique une présence (non nulle), le rectangle et l'étiquette sont dessinés en vert avec le texte "Ok". Si la valeur est zéro ou manquante, le rectangle et le texte sont dessinés en rouge avec le texte "Nok".
* Si le nombre de coordonnées et de compteurs diffère, le bloc émet un avertissement et paire les éléments selon la longueur la plus courte. Les entrées de coordonnées invalides sont ignorées avec un avertissement.
* L'image annotée finale est envoyée via la sortie `Result Image`.

## 📝 Instructions d'utilisation

1. Fournissez une image source dans `Image`.
2. Donnez des listes correspondantes dans `Coordinate_List` et `Object_Count` (même longueur recommandée).
3. Activez `Trigger` pour générer l'image annotée.
4. Connectez `Result Image` à un bloc d'affichage (`Show Image`) ou d'enregistrement (`Image Logger`, `Image Write`) pour inspecter ou sauvegarder les images annotées.

## 💡 Astuces

* Utilisez `Object Detection` ou `Object Detection - Custom` (ou `Object Detection (D-FINE)`) pour produire des listes de rectangles et des compteurs, puis connectez leurs sorties vers `Coordinate_List` et `Object_Count`.
* Combinez avec `Object_Detection_Tracker` pour dessiner des rectangles suivis avec des positions cohérentes ; alimentez les sorties de rectangles suivis dans ce bloc pour des marquages OK/Nok par objet.
* Utilisez `Rectangles in Rectangle` ou `Check Area` pour filtrer les détections avant dessin (exclure les détections hors d'une zone d'intérêt).
* Prévisualisez avec `Show Image` et enregistrez avec `Image Logger` ou `Image Write` pour conserver un historique.
* Contrôlez l'apparition des annotations avec `Logic Input` ou des détecteurs d'arête comme `Rising Edge` afin de dessiner seulement sur des images sélectionnées.
* Pour tracer un seul rectangle, utilisez `Draw Rectangle` ; ce bloc est adapté quand vous avez plusieurs détections et souhaitez un marquage automatique OK/Nok.

## 🛠️ Dépannage

* Pas de sortie : vérifiez que `Trigger` est True et qu'une image valide est connectée à `Image`.
* Listes de longueurs différentes : si `Coordinate_List` et `Object_Count` ont des longueurs différentes, vous verrez des avertissements et certains éléments pourront être ignorés — assurez-vous que les blocs en amont produisent des listes alignées.
* Coordonnées invalides : si des entrées de coordonnées sont malformées, le bloc les ignorera et affichera un avertissement ; vérifiez le format envoyé par les blocs de détection.
* Pour conserver les résultats ou les inspecter image par image, connectez `Result Image` à `Show Image` ou à des blocs d'enregistrement comme `Image Logger`.
