# CompareImage

CompareImage vergleicht einen Inspektionsbereich mit einem Vorlagenbild und gibt ein Bild mit weißen Pixeln zurück, wenn der Bereich innerhalb einer bestimmten Toleranz nicht mit der Vorlage übereinstimmt.

## CompareImage – Übersicht

CompareImage ist für das Extrahieren einer Vorlage aus dem aktuellen Bild konzipiert, wenn das Kontrollkästchen „Immer trainieren“ im Eigenschaftsblatt markiert ist. Nachdem der Anwender das Kontrollkästchen abwählt, kann CompareImage für einen Vergleich und für das Erstellen des Graustufen-Ausgangsbilds die Pixel aus der Vorlage auf dem Eingangsbild abbilden. Pixel, die nicht bis zu einer gewissen Toleranz mit dem Vorlagenbild übereinstimmen, werden als helle oder weiße Pixel dargestellt.

## CompareImage – Eingaben

Parameter | Beschreibung
Bild | Dieser Parameter muss Zellreferenzen in einer Tabellenzelle verwenden, die eine Bild-Datenstruktur enthält. Standardmäßig verweist dieser Parameter auf A0, die Zelle mit der von der -Funktion zurückgegebenen Image-Datenstruktur. Dieser Parameter kann auch andere Image-Datenstrukturen referenzieren, z. B. solche, die von Vision Tool-Bildfunktionen zurückgegeben werden.
Vorrichtung | Definiert den Inspektionsbereich (ROI) relativ zu einer Vorrichtung als Eingabe oder die Ausgabe des Bildkoordinatensystems einer Vision Tools-Funktion. Wenn man den Inspektionsbereich (ROI) relativ zu einer Vorrichtung bestimmt, stellt man sicher, dass beim Drehen oder Umsetzen der Vorrichtung auch der Inspektionsbereich (ROI) im Verhältnis zur Vorrichtung gedreht oder umgesetzt wird. Die Standardeinstellung ist (0,0,0), die oberste linke Ecke des Bilds.
X | Der x-Offset in Bildkoordinaten.
Y | Der y-Offset in Bildkoordinaten.
Winkel | Die Drehung von der x-Bildachse im Bildkoordinatensystem. (+/-360 Grad im Uhrzeigersinn)
Bereich | Auch als Inspektionsbereich (ROI) bezeichnet; gibt den Bereich des Bilds an, der einer Analyse unterzogen wird. Doppelklicken Sie auf den Parameter „Bereich“, um einen Interaktiver Grafikmodus zu erstellen, den Sie transformieren und drehen können. Wählen Sie diesen Parameter aus und klicken Sie in der Symbolleiste „Job bearbeiten“ des Eigenschaftsblatts auf die Schaltfläche „Bereich maximieren“, um den Bereich automatisch so zu dehnen, dass er das gesamte Bild einnimmt.
X | Der x-Offset vom Ursprung in Vorrichtungskoordinaten.
Y | Der y-Offset vom Ursprung im Vorrichtungskoordinatensystem.
Breite | Die Abmessung entlang der x-Achse des Bereichs.
Höhe | Die Abmessung entlang der y-Achse des Bereichs.
Winkel | Die Ausrichtung im Vorrichtungskoordinatensystem.
Hinweis: Die Parameter Vorrichtung und Bereich müssen innerhalb der Bildgrenzen festgelegt werden. Andernfalls gibt die Funktion #ERR zurück.
Immer trainieren | Bestimmt, wenn die Vorlage aus dem aktuellen Bild extrahiert werden soll: entweder, wenn die Abmessung des Inspektionsbereichs verändert werden oder wenn der Parameter „Immer trainieren“ ausgewählt wird.
0 = AUS (Standard) | Die Vorlage wird aus dem aktuellen Bild nur extrahiert, wenn die Dimensionen des Inspektionsbereichs verändert werden. Wählen Sie diese Option, nachdem der Anwender ein Vorlagenbild ausgewählt (oder „trainiert“) hat. So wird der Parameter „Training“ deaktiviert und die Vorlage nicht überschrieben.
1 = EIN | Die Vorlage wird aus dem Bild extrahiert. Diese Option sollte gewählt werden, wenn der Benutzer sich noch im Prozess des Auswählens (oder Trainierens) des Vorlagenbilds befindet.
Kantentoleranz | Definiert die Anzahl an Pixel (0 bis 24, Standard = 3) an einer Kante, für die ein weniger strikter Vergleich während des Vergleichens mit dem Bild zulässig ist. Je höher die Zahl, desto weniger strikt wird der Kantenvergleich zwischen der Vorlage und dem Eingangsbild ausfallen (mit anderen Worten, desto weniger wahrscheinlich werden nicht perfekt übereinstimmende Kanten als Unterschiede im Ausgangsbild angezeigt).
Interpolation | Gibt die Art des auszuführenden Pixelvergleiches an, der beim Abbilden der Vorlage auf das Eingangsbild zur Erstellung des Ausgangsbilds der Unterschiede verwendet werden soll.
0 = Nächstgelegener Nachbar (Standard) | Für das Ausrechnen des normalisierten Unterschieds in Graustufe wird jedes Pixel in der Vorlage mit dem ihm am nächsten gelegenen Pixel im Eingangsbild verglichen. Dies ist eine schnellere, aber weniger genaue Methode.
1 = Bilinear | Bei der Einstellung „Bilinear“ wird eine Bildzuordnung durchgeführt, bei der jedes Pixel der Vorlage mit einem gewichteten Durchschnitt, der dem Graustufenwert der vier nächstliegenden Pixel im Eingangsbild entspricht, verglichen wird, um den normalisierten Graustufenunterschied für jedes Pixel zu errechnen. Diese Bildzuordnungsmethode ist langsamer, aber genauer.
Anzeigen | Legt fest, welche Grafiküberlagerungen über dem Bild angezeigt werden sollen.
0 = Alle ausblenden (Standard) | Die zur Verfügung stehenden Grafiken werden nur angezeigt, wenn die Zelle mit der Funktion „CompareImage“ in der Tabelle markiert ist.
1 = Nur Ergebnis-Grafik | Das bearbeitete Bild wird immer angezeigt.
2 = Nur Eingabegrafik | Die dem Eingabebildbereich verknüpften Grafikelemente werden immer angezeigt.
3 = Alles: Eingabegrafik und Vorlagenbild | Die mit der Eingangsbildbereich verknüpften Grafikelemente werden immer angezeigt, während im Eigenschaftsblatt für die Funktion „CompareImage“ auch das Vorlagenbild angezeigt wird.

## CompareImage – Ausgaben

Rückgabewert | Eine Image-Datenstruktur mit dem verarbeiteten Bild oder #ERR, wenn ein oder mehrere Eingabeparameter ungültig sind.

## CompareImage – Beispiel

Das Ziel in diesem Beispiel ist, mit „CompareImage“ das Vorlagenbild einer „guten“ Dichtung mit den Eingangsbildern von Dichtungen einer Produktionslinie zu vergleichen.

Als erstes kann der Anwender nach dem Einfügen der Funktion in die In-Sight-Tabelle den Inspektionsbereich durch einen Doppelklick auf das Wort „Bereich“ im Eigenschaftsblatt definieren, der dann als roter Inspektionsbereichsrahmen über dem Bild erscheint. Der Anwender kann diesen Rahmen mithilfe des Mauszeigers verschieben oder dessen Größe verändern, und dann für das Annehmen der Auswahl in der Symbolleiste „Job bearbeiten“ auf die Schaltfläche OK klicken (oder die Eingabetaste auf der Tastatur drücken) und zum Eigenschaftsblatt zurückkehren.

Als Nächstes versieht der Anwender das Werkzeug mit einer Vorrichtung aus einer anderen Datenstruktur. Beim Erstellen einer Vorrichtung identifiziert der Anwender ein besonderes Merkmal, das auf allen Instanzen des Objekts erscheint, und kennzeichnet dieses als Referenzpunkt für nachfolgende Vision-Tools. Dies ermöglicht das Ausführen von präzisen Vergleichen oder Inspektionen, auch wenn das Objekt auf der Produktionslinie etwas gedreht oder versetzt erscheint.

Um eine Funktion mit einer Vorrichtung zu versehen, muss der Anwender im Eigenschaftsblatt auf das Wort „Vorrichtung“ klicken, und dann entweder die Schaltfläche „Absolute Referenz“ oder die Schaltfläche „Relative Referenz“ in der Symbolleiste des Eigenschaftsblatts klicken.

Das Eigenschaftsblatt verschwindet und die In-Sight-Tabelle erscheint. Der Anwender bewegt den Cursor zur Auswahl der X-, Y- und Winkel-Zellen aus einer anderen Datenstruktur in der Tabelle (zum Beispiel, FindPatterns) als Referenz für die Vorrichtung, und kann dann für das Annehmen der Auswahl auf die Schaltfläche OK in der Symbolleiste „Job bearbeiten“ klicken (oder die Eingabe-Taste auf der Tastatur drücken) und zum Eigenschaftsblatt zurückkehren.

Der Anwender vergewissert sich dann, dass das Kontrollkästchen „Immer trainieren“ im Eigenschaftsblatt ausgewählt ist, so dass ein Vorlagenbild (unten) automatisch extrahiert werden kann, wenn manuell eine Bildaufnahme ausgelöst wird. (Durch einfaches Aktivieren des Kontrollkästchens „Immer trainieren“ wird jedoch die Bildaufnahme ausgelöst. Wenn das aktuelle Bild akzeptabel ist, kann der Benutzer das Einrichten des Bilds und das manuelle Auslösen der Aufnahme überspringen.) Sobald eine Vorlage ausgewählt ist, deaktiviert der Benutzer das Kontrollkästchen, um zu verhindern, dass die Vorlage überschrieben wird.

Mit der Annahme der Standardeinstellungen der anderen Parameter und durch Klicken auf OK im Eigenschaftsblatt wird die Konfiguration für dieses Beispiel beendet und die Funktion auf das Eingangsbild angewendet.

Während der Laufzeit vergleicht das Werkzeug das Vorlagebild mit dem Eingangsbild. Ein „schlechtes“ Eingangsbild kann eine Dichtung mit weißen Markierungen (unten) sein.

Unterschiede zwischen den beiden werden als helle Pixel im Graustufen-Ausgangsbild ausgegeben (unten).

Ein anderes Tool (z. B. DetectBlobs, siehe unten) kann auf das Ausgangsbild verweisen, um eine Entscheidung darüber zu treffen, ob die Dichtung die Inspektion besteht oder nicht.