> 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/perspective-transform.md).

# Perspective Transform

Cette fonction permet de définir une région quadrilatérale sur une image et de générer une vue corrigée, en plongée (transformée par perspective), de cette région. L’outil est interactif — sélectionnez quatre points sur l’image, déplacez-les pour affiner, et utilisez des raccourcis clavier pour éditer votre sélection.

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

* `Image` — Image source affichée dans le bloc pour la sélection des points.

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

* `Image` — Image recadrée/transformée par perspective de la quadrilatère sélectionnée.
* `Transform Matrix` — Matrice de transformation perspective (utile pour alimenter d’autres blocs qui requièrent une matrice de perspective ou d’homographie).

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

* `Interactive Image Area` — Cliquez sur l’image pour ajouter des points. Les points apparaissent en tant que polygone superposé au fur et à mesure.
* `Drag Points` — Cliquez et faites glisser un point pour ajuster sa position.
* `C` — Efface tous les points sélectionnés.
* `U` — Annule le dernier point ajouté.
* `Help Text` — Petit texte d’aide sur le bloc rappelant comment ajouter, déplacer, effacer et annuler des points.

Remarque : la superposition indique si le polygone est complet et met en surbrillance le sommet sous la souris pour faciliter l’ajustement.

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

* Le bloc affiche l’image connectée afin que vous puissiez sélectionner interactivement quatre points.
* Si moins de quatre points sont définis, le bloc renvoie des sorties vides pour indiquer aux blocs en aval que la transformation n’est pas prête.
* Une fois quatre points fournis, le bloc les ordonne, calcule la taille du rectangle de sortie à partir des points sélectionnés, construit la transformation de perspective et fournit l’image transformée ainsi que la matrice de transformation.
* Le bloc met en cache la dernière transformation calculée pour la même image et le même jeu de points afin d’éviter des recalculs inutiles lors de l’ajustement d’autres parties du scénario.

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

* Sélection ROI visuelle et interactive avec édition par clic-et-glisser.
* Raccourcis clavier pour une édition rapide.
* Superposition visuelle affichant le polygone, la mise en évidence des sommets et l’état d’achèvement.
* Fournit à la fois l’image corrigée et la matrice de transformation pour réutilisation.
* Le dimensionnement automatique choisit un rectangle de sortie approprié en fonction des points sélectionnés.

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

1. Connectez un bloc producteur d’image à l’entrée `Image`.
2. Cliquez sur la zone image à l’intérieur du bloc pour placer jusqu’à quatre points d’angle (dans n’importe quel ordre).
3. Faites glisser les points pour affiner leur position.
4. Utilisez `U` pour annuler le dernier point et `C` pour effacer tous les points.
5. Lorsque quatre points sont présents, le bloc fournira une image corrigée et la sortie `Transform Matrix`.

## 💡 Conseils et astuces <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* Utilisez `Show Image` pour prévisualiser l’image source ou transformée dans une fenêtre plus grande pendant l’ajustement des points.
* Si vous devez d’abord recadrer la zone, ajoutez `Image ROI Select` ou `Image ROI` avant ce bloc pour travailler sur une région plus petite.
* Si votre image source est très grande, ajoutez `Image Resizer` avant ce bloc pour accélérer l’interaction et réduire l’utilisation mémoire.
* La `Transform Matrix` produite peut être alimentée dans le bloc `Social Distance Detector` comme entrée `Perspective Matrix` nécessaire pour mesurer des distances réelles depuis la vue transformée.
* Sauvegardez les résultats transformés avec `Image Write` si vous souhaitez conserver une copie des images corrigées.

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

* Si aucune sortie n’apparaît, vérifiez que quatre points sont définis — le bloc ne produira pas de transformée tant que le quadrilatère n’est pas complet.
* Si l’image transformée semble déformée, ajustez les points d’angle en les faisant glisser ; l’utilisation de `Show Image` aide à inspecter les détails lors de l’ajustement.
* Si l’interaction est lente sur de grandes images, insérez `Image Resizer` avant ce bloc ou travaillez sur une région recadrée avec `Image ROI Select`.
* Si vous ajoutez accidentellement un point au mauvais endroit, appuyez sur `U` pour retirer le dernier point ou `C` pour recommencer.
