> 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/german/funktionsblocke/blocks-reference/detections-shapes/roi-processing/perspective-transform.md).

# Perspective Transform

Dieser Funktionsblock ermöglicht es, ein quadrilaterales Gebiet in einem Bild zu definieren und eine korrigierte Draufsicht (perspektivisch transformierte Ansicht) dieses Bereichs zu erzeugen. Die Bedienung ist interaktiv — wählen Sie vier Punkte im Bild, ziehen Sie sie zur Feinabstimmung und verwenden Sie Tastenkürzel, um die Auswahl zu bearbeiten.

## 📥 Eingänge <a href="#inputs" id="inputs"></a>

* `Image` — Quellbild, das im Block angezeigt wird, um Punkte auszuwählen.

## 📤 Ausgänge <a href="#outputs" id="outputs"></a>

* `Image` — Das perspektivisch transformierte (warped) Bild des ausgewählten Quadrilaterals.
* `Transform Matrix` — Die Perspektivtransformationsmatrix (nützlich zum Weiterleiten an andere Blöcke, die eine Perspektive- oder Homographie-Matrix benötigen).

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

* `Interactive Image Area` — Klicken Sie auf das Bild, um Punkte hinzuzufügen. Beim Hinzufügen werden die Punkte als überlagertes Polygon angezeigt.
* `Drag Points` — Klicken und ziehen Sie einen Punkt, um seine Position zu ändern.
* `C` — Löscht alle ausgewählten Punkte.
* `U` — Macht den zuletzt hinzugefügten Punkt rückgängig.
* `Help Text` — Kleine Hilfetexte auf dem Block, die daran erinnern, wie Punkte hinzugefügt, gezogen, gelöscht und rückgängig gemacht werden.

Hinweis: Die Überlagerung zeigt an, ob das Polygon vollständig ist, und hebt den Scheitelpunkt unter der Maus zur einfacheren Anpassung hervor.

## ⚙️ Ausführungsmechanismus <a href="#running-mechanism" id="running-mechanism"></a>

* Der Block zeigt das verbundene Bild an, sodass Sie interaktiv vier Punkte wählen können.
* Wenn weniger als vier Punkte definiert sind, gibt der Block leere Ausgaben zurück, damit nachgelagerte Blöcke wissen, dass die Transformation noch nicht bereit ist.
* Sobald vier Punkte vorhanden sind, ordnet der Block diese, berechnet die Größe des Ausgaberechtecks aus den ausgewählten Punkten, erstellt eine Perspektivtransformation und gibt das gewarpte Bild zusammen mit der `Transform Matrix` aus.
* Der Block cached die zuletzt berechnete Transformation für dasselbe Bild und dieselbe Punktmenge, um unnötige Neuberechnungen zu vermeiden, während andere Teile des Szenarios angepasst werden.

## ✨ Funktionen <a href="#features" id="features"></a>

* Interaktive, visuelle ROI-Auswahl mit Klick-und-Zieh-Bearbeitung.
* Tastenkürzel für schnelles Editieren.
* Visuelle Überlagerung zeigt Polygon, Vertex-Hervorhebung und Vollständigkeitszustand.
* Gibt sowohl das korrigierte Bild als auch die Transformationsmatrix zur Wiederverwendung aus.
* Automatische Größenwahl bestimmt ein geeignetes Ausgaberechteck basierend auf den ausgewählten Punkten.

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

1. Verbinden Sie einen bildproduzierenden Block mit dem Eingang `Image`.
2. Klicken Sie im Bildbereich des Blocks, um bis zu vier Eckpunkte (in beliebiger Reihenfolge) zu setzen.
3. Ziehen Sie Punkte, um ihre Positionen zu verfeinern.
4. Verwenden Sie `U`, um den letzten Punkt rückgängig zu machen, und `C`, um alle Punkte zu löschen.
5. Wenn vier Punkte vorhanden sind, liefert der Block ein korrigiertes Bild und den Ausgang `Transform Matrix`.

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

* Verwenden Sie `Show Image`, um das Quell- oder transformierte Bild in einem größeren Viewer-Fenster zu betrachten, während Sie die Punkte feinjustieren.
* Wenn Sie den Bereich zuerst zuschneiden möchten, fügen Sie `Image ROI Select` oder `Image ROI` vor diesem Block hinzu, sodass Sie an einem kleineren Bereich arbeiten.
* Bei sehr großen Quellbildern sollten Sie `Image Resizer` vor diesem Block einfügen, um die Interaktion zu beschleunigen und den Speicherbedarf zu reduzieren.
* Die erzeugte `Transform Matrix` kann in den `Social Distance Detector`-Block als erforderlichen `Perspective Matrix`-Eingang eingespeist werden, um reale Entfernungen aus der gewarpeten Ansicht zu messen.
* Speichern Sie transformierte Ergebnisse mit `Image Write`, wenn Sie Kopien der korrigierten Bilder behalten möchten.

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

* Wenn keine Ausgabe erscheint, stellen Sie sicher, dass vier Punkte definiert sind — der Block erzeugt keine Transformation, bis das Quadrilateral vollständig ist.
* Wenn das gewarpte Bild verzerrt aussieht, passen Sie die Eckpunkte durch Ziehen an; `Show Image` hilft beim Inspektieren von Details während der Feinabstimmung.
* Wenn die Interaktion bei großen Bildern langsam ist, fügen Sie `Image Resizer` vor diesem Block ein oder arbeiten Sie mit einem zugeschnittenen Bereich mittels `Image ROI Select`.
* Wenn Sie versehentlich einen Punkt an der falschen Stelle gesetzt haben, drücken Sie `U`, um den letzten Punkt zu entfernen, oder `C`, um neu zu beginnen.
