# HeatMap

Dieser Funktionsblock visualisiert, wo sich Bewegung über die Zeit in einem festen Sichtfeld anhäuft. Er erzeugt eine farbige Überlagerung, die Bereiche mit häufigen Bewegungen hervorhebt — nützlich für Überwachung, Verkehrsanalysen oder Aktivitäts-Heatmaps.

## 📥 Eingänge

`Image Any`\
Graustufen- oder Farb-Frame-Stream, der auf Bewegung analysiert werden soll.

## 📤 Ausgänge

`Image Any`\
Farbiges Bild mit einer Heatmap-Überlagerung, die Bereiche mit häufiger Bewegung hervorhebt.

## 🕹️ Steuerungen

`Threshold`\
Passt die Empfindlichkeit für die Vordergrunderkennung an. Höhere Werte ignorieren kleine Veränderungen und konzentrieren sich auf stärkere Bewegungen.

`MaxValue`\
Steuert, wie stark jedes erkannte Bewegungsevent zur akkumulierten Heatmap beiträgt. Größere Werte erhöhen den Beitrag jedes Events.

`Alpha`\
Legt das Gewicht des ursprünglichen ersten Frames beim Überlagern der farbigen Heatmap fest. Niedrigere Werte machen die Überlagerung stärker.

`Beta`\
Legt das Gewicht der kolorierten akkumulierten Bewegungsmap beim Überlagern fest. Höhere Werte machen die Heatmap prominenter.

## ⚙️ Funktionsweise

* Beim ersten Lauf erfasst der Block den ersten Frame und speichert ihn als Hintergrundreferenz.
* Für nachfolgende Frames werden Vordergrundpixel berechnet und durch Thresholding als Bewegungsereignisse erkannt.
* Erkannte Bewegungs-Pixel werden über die Zeit in einem internen akkumulierten Bild gesammelt.
* Das akkumulierte Bild wird koloriert und mit dem gespeicherten ersten Frame unter Verwendung der `Alpha`- und `Beta`-Werte gemischt, um die finale Überlagerung zu erzeugen.
* Der Block akkumuliert weiter, bis der Lauf gestoppt oder der Block zurückgesetzt wird.

## 🎯 Funktionen

* Kontinuierliche Akkumulation für langfristige Bewegungs-Heatmaps.
* Einfache Steuerung zur Balance von Empfindlichkeit und Visualisierungsstärke.
* Echtzeit-Overlay, um zu sehen, wo die meiste Aktivität im Bildbereich stattfindet.
* Eingebaute Hard-Reset-Behandlung zum Löschen akkumulierten Daten zwischen Läufen.

## 📝 Nutzungshinweise

1. Einspeisen Sie einen Live-Kamera- oder Video-Frame-Stream in den Eingang `Image Any`.
2. Stellen Sie `Threshold` so ein, dass nur relevante Bewegungen erfasst und Rauschen ignoriert werden.
3. Passen Sie `MaxValue` an, um festzulegen, wie stark jedes Ereignis zur Heatmap beiträgt.
4. Verwenden Sie `Alpha` und `Beta`, um die Sichtbarkeit zwischen der ursprünglichen Szene und der kolorierten Heatmap auszubalancieren.
5. Stoppen oder setzen Sie den Lauf zurück, wenn Sie die akkumulierte Heatmap löschen möchten.

## 💡 Tipps und Tricks

* Für Live-Kameraquellen kombinieren Sie diesen Block mit `Camera USB`, `Camera IP (ONVIF)` oder `Stream Reader`, um kontinuierliche Frames zu liefern.
* Wenn Ihre Eingabebilder groß sind und Sie nur eine Übersicht benötigen, fügen Sie vor diesem Block `Image Resize` hinzu, um die Verarbeitung zu beschleunigen.
* Um sich auf einen bestimmten Bereich zu konzentrieren, schneiden Sie mit `Image ROI` oder `Image ROI Select` vor dem Einspeisen in diesen Block.
* Wenn Sie eine separate Vordergrundmaske oder alternative Hintergrundmodelle wünschen, kombinieren Sie mit `Background Subtractor` zur Vorverarbeitung.
* Verwenden Sie `Show Image`, um die Überlagerung live in der UI zu betrachten.
* Speichern Sie Ergebnisse periodisch mit `Image Logger` oder zeichnen Sie Sitzungen mit `Record Video` für die Nachanalyse auf.

## 🛠️ Fehlersuche

* Wenn die Heatmap zu viel Rauschen zeigt, erhöhen Sie `Threshold` und ziehen Sie Vorverarbeitung wie `Blur` oder `Denoising` in Betracht.
* Wenn sich Bewegungsbereiche zu schnell aufbauen, verringern Sie `MaxValue` oder setzen Sie den Lauf regelmäßig zurück, um alte Akkumulation zu löschen.
* Wenn die Überlagerung zu schwach oder zu dominant ist, passen Sie `Alpha` und `Beta` an, bis das gewünschte visuelle Gleichgewicht erreicht ist.
* Wenn keine Bewegung erkannt wird, prüfen Sie, ob sich die Eingabeframes tatsächlich ändern und nicht identisch sind; testen Sie zur Bestätigung mit einer Live-Kameraquelle wie `Camera USB`.


---

# 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/heatmap.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.
