> 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/roi-processing/rectangles-in-rectangle.md).

# Rectangles in Rectangle

Ce bloc de fonction vérifie si un ou plusieurs rectangles détectés se trouvent à l'intérieur d'un rectangle de référence (zone d'intérêt) sur une image. Il fournit un résultat visuel avec des rectangles colorés et des étiquettes, un booléen indiquant la présence, un décompte des correspondances et une liste des rectangles qui sont à l'intérieur de la zone de référence.

## 📥 Inputs <a href="#inputs" id="inputs"></a>

`Image Any`\
Image principale utilisée pour la visualisation et les vérifications. Le rectangle de référence et les rectangles candidats sont dessinés sur cette image pour retour visuel.

`Rectangle`\
Rectangle de référence défini par deux points de coin (haut-gauche et bas-droite). Si laissé vide, toute la surface de l'image est utilisée.

`Rectangles`\
Un ou plusieurs rectangles candidats à vérifier par rapport au rectangle de référence. Accepte une liste de paires de coordonnées.

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

`Result`\
Image annotée montrant le rectangle de référence et tous les rectangles candidats. Les rectangles situés à l'intérieur de la zone de référence sont dessinés en vert et étiquetés `OK` ; ceux en dehors sont dessinés en rouge et étiquetés `NOK`.

`Not Empty`\
Booléen qui vaut True dès qu'au moins un rectangle candidat est à l'intérieur du rectangle de référence.

`Count`\
Nombre de rectangles candidats trouvés à l'intérieur du rectangle de référence.

`Rectangles`\
Liste des coordonnées des rectangles déterminés comme étant à l'intérieur du rectangle de référence.

## 🕹️ Controls <a href="#controls" id="controls"></a>

`No Controls`\
Ce bloc ne nécessite pas de widgets UI supplémentaires ; son comportement est entièrement contrôlé via ses inputs (rectangle de référence et rectangles candidats). Utilisez d'autres blocs ou outils UI pour créer ou modifier les entrées de rectangle.

## 🎨 Features <a href="#features" id="features"></a>

* Confirmation visuelle : l'image de sortie montre clairement la zone de référence et dessine chaque rectangle candidat avec un code couleur et des étiquettes textuelles.
* Référence flexible : vous pouvez fournir un rectangle de référence explicite ou le laisser vide pour utiliser l'image entière comme référence.
* Support de plusieurs rectangles : accepte un seul rectangle ou une liste de rectangles en une seule exécution.
* Gestion sûre : vérifie et signale lorsque les entrées sont invalides ou hors des limites de l'image.

## 📝 Usage Instructions <a href="#usage" id="usage"></a>

1. Fournissez une image à l'entrée `Image Any`.
2. Définissez la zone de référence via l'entrée `Rectangle` (deux coordonnées). Laissez vide pour utiliser l'image entière.
3. Alimentez l'entrée `Rectangles` avec le(s) rectangle(s) candidat(s) (un rectangle unique ou une liste).
4. Exécutez le scénario. Inspectez l'image `Result` pour voir quels rectangles sont à l'intérieur de la zone de référence et utilisez les sorties `Not Empty`, `Count` et `Rectangles` pour la logique ou la journalisation.

## 📊 Evaluation <a href="#evaluation" id="evaluation"></a>

Lors de l'évaluation, le bloc calcule si le centre de chaque rectangle candidat se situe à l'intérieur du rectangle de référence et si le rectangle candidat tient (en taille) à l'intérieur de la référence. Il retourne une image annotée, un booléen de présence, le nombre de correspondances et une liste des rectangles correspondants.

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

* Utilisez `Find Object` (template matching) ou des blocs de détection similaires pour générer automatiquement des rectangles candidats, puis alimentez-les dans ce bloc pour filtrage par zone.
* Si vous avez besoin d'un moyen interactif pour créer rapidement la zone de référence, combinez avec `Image ROI Select` ou `Image ROI` pour recadrer ou sélectionner visuellement la zone avant de la passer au bloc.
* Pour des régions polygonales, envisagez d'utiliser `Image ROI Polygon` ou `Check Area (Polygon)` en combinaison avec ce bloc. Utilisez des blocs basés sur des polygones pour des définitions de zone plus précises, puis convertissez ou fournissez des coordonnées de rectangles si nécessaire.
* Pour visualiser ou inspecter les résultats à l'écran, suivez ce bloc avec `Show Image` afin d'ouvrir une fenêtre de visualisation plus grande.
* Pour enregistrer ou archiver les résultats, envoyez la sortie `Result` vers `Image Logger` ou `Image Write` pour sauvegarder les images annotées lorsque des correspondances se produisent.
* Si la détection renvoie des rectangles inattendus, prétraitez l'image avec `Blur`, `Image Threshold` ou `HSV Filter` pour améliorer la qualité de la détection en amont.

## 🛠️ Troubleshooting <a href="#troubleshooting" id="troubleshooting"></a>

* Si aucun rectangle n'est détecté comme étant à l'intérieur malgré un recouvrement visuel, assurez-vous que le rectangle de référence et les rectangles candidats sont fournis dans le format de coordonnées attendu (deux points de coin chacun) et que les coordonnées se situent dans les dimensions de l'image.
* Si les rectangles candidats sont mal étiquetés, confirmez que l'entrée de liste de rectangles suit l'imbrication correcte (une liste de paires de coordonnées) et essayez d'utiliser `Get ROI` ou `Image ROI Select` pour produire des coordonnées de rectangle bien formées.
* Si l'image de sortie semble inchangée, vérifiez que l'entrée image contient le contenu attendu et que les coordonnées des rectangles candidats ne sont pas vides ou None.
* Utilisez `Debug Input` ou des blocs de journalisation pour inspecter les listes de rectangles intermédiaires si les résultats sont inattendus.
