# Subtract Images

Dieser Funktionsblock berechnet die pixelweise Differenz zwischen zwei Bildern, um Änderungen oder Defekte hervorzuheben. Er eignet sich für Vergleichsaufgaben wie das Erkennen von Abweichungen gegenüber einer Referenz, Sichtprüfungen und Bewegungs-/Änderungsanalysen.

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

`Actual Image`\
Eingang — das Bild, das verglichen werden soll (Quellbild).

`Reference Image`\
Eingang — das Bild, das vom `Actual Image` subtrahiert wird (Basis- oder Referenzbild).

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

`Difference Image`\
Ausgang — das resultierende Bild, das die pixelweise Differenz der Eingaben zeigt.

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

Dieser Block hat keine sichtbaren Steuerelemente oder Widgets.

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

* Erzeugt ein visuelles Differenzbild, das pixelgenaue Änderungen zwischen zwei gleich großen Bildern hervorhebt.
* Funktioniert mit Farb- oder Graustufenbildern (beide Eingänge müssen dieselben Abmessungen haben).
* Einfach und schnell — gut geeignet als Vorverarbeitung für nachgelagerte Erkennungs- oder Protokollierungsschritte.

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

Wenn beide Eingänge Bilder liefern, berechnet der Block das `Difference Image` durch eine pixelweise Subtraktion: Reference wird von Actual subtrahiert. Beide Bilder müssen identische Dimensionen haben; bei unterschiedlicher Größe meldet der Block einen Fehler. Die Differenzausgabe kann an Visualisierungs-, Schwellenwert- oder Zählblöcke weitergeleitet werden, um das Ergebnis zu interpretieren.

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

1. Verbinde ein Quellbild mit dem Eingang `Actual Image`.
2. Verbinde ein Basis- oder Referenzbild mit dem Eingang `Reference Image`.
3. Stelle sicher, dass beide Bilder dieselbe Größe haben. Ist das nicht der Fall, füge vor diesem Block den `Image Resize`-Block ein.
4. Verwende die Ausgabe `Difference Image` zur Visualisierung oder für weitere Verarbeitungsschritte.

Häufige Workflows:

* Sichtprüfung: Verbinde `Difference Image` mit `Show Image`, um Änderungen vorschauweise zu sehen.
* Binäre Erkennung: Führe `Difference Image` durch `Image Threshold`, um eine Maske veränderter Bereiche zu erstellen.
* Quantifizierung: Übergib die maskierten Bereiche an `Non-zero of Image`, um geänderte Pixel zu zählen.
* Protokollierung: Speichere Ergebnisse mit `Image Logger` oder `Image Write` zur Dokumentation.

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

* Stelle sicher, dass Bilder ausgerichtet sind und dieselbe Auflösung haben. Bei Bedarf `Image Resize` oder geometrische Ausrichtungsblöcke verwenden.
* Um subtile Unterschiede sichtbarer zu machen, wende `Contrast Optimization` oder `Normalize Image` auf das `Difference Image` vor der Anzeige an.
* Wandeln Sie die Differenz in eine binäre Maske mit `Image Threshold` um, um aussagekräftige Änderungen zu isolieren. Kombiniere die Maske mit `Non-zero of Image` für eine numerische Messung.
* Während der Entwicklung eignet sich `Show Image` für eine schnelle Sichtprüfung; für automatisierte Abläufe Ergebnisse mit `Image Logger` oder `Image Write` speichern.
* Wenn ein einkanaliger Output erwartet wird, überprüfen Sie die Kanalformate (Graustufen vs. RGB) der Eingaben und konvertieren Sie gegebenenfalls vorab.

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

* Mismatched image sizes\
  Stellen Sie sicher, dass beide Eingänge dieselbe Breite und Höhe haben. Verwenden Sie `Image Resize`, um eines der Bilder anzupassen.
* Sehr geringe oder keine sichtbare Differenz\
  Wenden Sie `Contrast Optimization` oder `Normalize Image` an, um kleine Änderungen zu verstärken, oder nutzen Sie `Image Threshold`, um eine binäre Maske zu erzeugen.
* Unerwartete Farben oder Kanäle\
  Prüfen Sie, ob beide Eingänge im selben Farbraum vorliegen (beide Graustufen oder beide RGB), bevor Sie sie verbinden.
* Bedarf an numerischer Änderungsmessung\
  Nach dem Thresholding die Maske an `Non-zero of Image` senden, um eine Zählung der geänderten Pixel zu erhalten.


---

# 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/operations/subtract-images.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.
