# Watershed Algorithm

Dieser Funktionsblock führt eine regionsbasierte Segmentierung durch, indem bereitgestellte Foreground- und Background-Masken verwendet werden, um aneinandergrenzende oder überlappende Objekte zu trennen. Er liefert eine visuelle Überlagerung mit erkannten Grenzen und eine gelabelte Segmentierungsabbildung für nachgelagerte Verarbeitungsschritte.

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

`Image Any` Das originale Farb- oder Graustufenbild, das segmentiert werden soll.

`Fore Ground` Ein binäres/ Graustufenbild, das sichere Vordergrundregionen (Objektinnenbereiche) kennzeichnet.

`Back Ground` Ein binäres/ Graustufenbild, das sichere Hintergrundregionen kennzeichnet.

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

`Image Any` Das Originalbild mit überlagerten erkannten Regionsgrenzen (visuelles Ergebnis).

`Shed Image` Ein gelabeltes Bild (Graustufen), das die segmentierten Regionen / Marker darstellt.

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

Dieser Funktionsblock hat keine einstellbaren Widgets. Stellen Sie präzise `Fore Ground`- und `Back Ground`-Eingaben bereit, um das Segmentierungsergebnis zu steuern.

## ⚙️ Ablauf / Funktionsweise <a href="#running-mechanism" id="running-mechanism"></a>

* Der Block nutzt die bereitgestellten `Fore Ground`- und `Back Ground`-Masken, um Pixel zu bestimmen, die definitiv zum Objekt bzw. definitiv zum Hintergrund gehören.
* Er identifiziert die unbekannte Region zwischen diesen Masken und weist Zwischenmarker zu.
* Ein Segmentierungsdurchlauf trennt die Regionen, zeichnet die erkannten Grenzen auf eine Kopie des Eingabebildes und erzeugt ein gelabeltes `Shed Image`, in dem jede segmentierte Region einen eigenen Markerwert erhält.
* Das überlagerte Bild hebt die Grenzen zur schnellen visuellen Kontrolle hervor, während das gelabelte Bild sich für Messungen, Zählungen oder weitere Analysen eignet.

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

* Funktioniert gut zum Trennen aneinandergrenzender Objekte, sofern klare Foreground-/Background-Masken vorhanden sind.
* Erzeugt sowohl eine visuelle Überlagerung zur Inspektion als auch ein gelabeltes Ergebnis für die Weiterverarbeitung (Messungen, Zählungen, Extraktion).
* Akzeptiert Farb- oder Graustufenbilder als Eingabe.

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

1. Erstellen Sie eine klare `Fore Ground`-Maske, die das Innere der Objekte abdeckt, und eine komplementäre `Back Ground`-Maske für den Hintergrund.
2. Verbinden Sie das Originalbild mit `Image Any` und die beiden Masken mit den entsprechenden Eingängen.
3. Führen Sie den Block aus, um die segmentierte Überlagerung und das gelabelte `Shed Image` zu erhalten.
4. Verwenden Sie das gelabelte Bild für nachgelagerte Aufgaben wie Objektzählung oder Extraktion einzelner Regionen.

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

* Verwenden Sie `Image Threshold`, `Image Adaptive Threshold` oder `HSV Filter`, um aus dem Eingabebild initiale binäre Masken zu erzeugen.
* Bereinigen Sie kleine Löcher und Rauschen in den Masken mit `Morphological Transformations` oder `Denoising`, bevor Sie sie in diesen Block einspeisen.
* Bei schwierigen Hintergründen probieren Sie `Grab Cut Algorithm` oder `Background Subtractor`, um bessere Foreground-/Background-Kandidaten zu generieren.
* Begrenzen Sie die Verarbeitung auf eine Region of Interest mit `Image ROI` oder `Image ROI Select`, um die Segmentierung zu beschleunigen und irrelevante Bereiche auszuschließen.
* Vorschau von Masken und Ergebnissen mit `Show Image` und speichern Sie nützliche Frames mit `Image Logger` oder `Image Write`.
* Nach der Segmentierung können `Find Contour`, `Minimum Rectangle` oder `Measure Object Distance` verwendet werden, um Regionseigenschaften und Messwerte aus dem gelabelten `Shed Image` zu extrahieren.

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

* Schlechte Segmentierung oder zusammengeführte Objekte: Prüfen Sie, ob `Fore Ground` nur Objektinnenbereiche und `Back Ground` nur Hintergrund abdeckt; fügen Sie morphologische Opening/Closing-Schritte hinzu, um die Masken zu verfeinern.
* Keine sichtbaren Grenzen: Vergewissern Sie sich, dass Eingabebilder und Masken gültige Bildtypen sind (nicht leer) und dass die Masken binär oder deutlich kontrastiert sind.
* Übersegmentierung (zu viele kleine Regionen): Glätten oder vereinfachen Sie Masken mit `Blur`, `Denoising` oder `Morphological Transformations` vor der Segmentierung.
* Untersegmentierung (Objekte werden nicht getrennt): Erhöhen Sie die Genauigkeit der Foreground-Marker (verwenden Sie stärkere Objektmarker oder manuelle ROI-Auswahl), um das Trennen aneinandergrenzender Objekte zu erleichtern.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.augelab.com/german/function-blocks/image-transformations/transformation-filters/watershed-algorithm.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
