FindBlobs

FindBlobs wird verwendet, um Blobs in einer Blobs-Struktur anhand eines gewichteten Satzes idealer Werte zu filtern und zu bewerten.

FindBlobs – Übersicht

Mithilfe der FindBlobs-Parametereinstellungen wird eine Formel erstellt, die eine Güte berechnet, um zu messen, inwieweit die Blobs, die in der Blobs-Datenstruktur referenziert werden, einem „idealen“ Blob entsprechen. FindBlobs gibt den Parametereinstellungen entsprechend wiederum nur die Blobs zurück, die den angegebenen Anforderungen entsprechen.

Jeder Blob in der referenzierten Blobs-Datenstruktur wird einem zweistufigen Analyseprozess unterzogen: Zunächst erstellt jede der einzelnen FindBlobs-Parametereinstellungen eine Formel, die diesen bestimmten Parameterwert auswertet. Zum Beispiel würde die Güte für Winkel durch Dividieren der Unterschiede von Bereich und dem Wert Winkel des Parameters „Winkel“ plus dem Bereich und dem Wert „Winkel“ des referenzierten Blobs, multipliziert mit dem Wert Gewicht berechnet. Nachdem die individuellen Güten berechnet wurden, werden die individuellen Parametergüten addiert und durch die Summe der einzelnen Parameterwerte Gewicht geteilt. Diese Güte wird dann mit dem Wert Akzeptanzschwelle verglichen, um zu entscheiden, ob der Blob den angegebenen Anforderungen entspricht.

Sobald FindBlobs die extrahierten Blobs gefiltert und sortiert hat, werden eine neue Blobs-Datenstruktur und die zugehörige Ergebnistabelle automatisch in die Tabelle eingefügt. Die Ergebnistabelle ist in absteigender Reihenfolge danach sortiert, wie nah die gefundenen Blobs den konfigurierten Anforderungen entsprechen.

FindBlobs kann beim Klassifizieren von Merkmalen in der Fehlererkennung extrem nützlich sein. Zum Beispiel, wenn der Job Kratzer auf einer Oberfläche finden soll, könnte FindBlobs so konfiguriert werden, dass es nur die Blobs mit hohen Streckungswerten zurückgibt. Oder wenn das Ziel das Auffinden von schartigen Kantenfehlern wäre, könnte FindBlobs so konfiguriert werden, dass es nur die Blobs mit höheren Umfangs- oder Ausdehnungswerten zurückgibt.

FindBlobs – Eingaben

Parameter Beschreibung

Blobs

Dieser Parameter verwendet Zellreferenzen auf eine Blobs-Datenstruktur, die gefiltert und sortiert werden soll.

Anzahl

Dieser Parameter legt die maximale Anzahl (1 bis 4096; Standard = 3) der zurückzugebenden Blobs an. Wenn es im Bild mehr Blobs gibt, deren Güte den Wert des Parameters Akzeptanzschwelle überschreitet, werden die Blobs mit der höchsten Güte ausgewählt.

Hinweis: Wenn der Wert des Parameters Anzahl größer als Null ist, fügt FindBlobs automatisch eine Ergebnistabelle mit maximal 10 Einträgen ein, die den ersten 10 Blobs in der Blobs-Datenstruktur entsprechen. Möchten Sie mehr Einträge anzeigen lassen, können Sie die Tabelle durch kopieren der letzten Zeile und das Einfügen weiterer Zeilen am Ende erweitern. Vergewissern Sie sich, dass der Index der neu eingefügten Zeilen inkrementiert wird, so dass der korrekte Blob indiziert wird.

Akzeptanzschwelle

Definiert die minimal akzeptable Übereinstimmungsgüte (0 bis 100; Standard = 10). FindBlobs gibt nur die Blobs zurück, deren Übereinstimmungsgüte die Akzeptanzschwelle überschreiten. Die Übereinstimmungsgüte wird mit der folgenden Formel berechnet:

(Güte des Winkels + Güte der Fläche + Güte der Streckung + Güte der Löcher + Güte des Umfangs + Güte der Ausdehnung) * (100 / Summe der Werte des Parameters „Gewicht“)

Winkel

Dieser Parameter wird verwendet, um die Bewertungsformel zu konfigurieren, die die ideale Winkelgüte (+/- CCW-Grad) der gefundenen Blobs identifiziert.

Winkelgüte-Formel

Die FindBlobs-Winkelgüte wird mit der folgenden Formel berechnet:

Winkelgüte = [(Bereich + Winkel) - BlobAngelVal]/Bereich * GewichtWert

BlobAngleVal = der Ausgangswinkelwert des referenzierten Blobs

WeightVal = Gewicht/(Summe aller Gewichtswerte) * 100

Winkel

Der ideale Blob-Winkel (-360 bis 360; Standard = 0).

Bereich

Die Blob-Winkel-Toleranz bei der Berechnung der Ähnlichkeit (0 bis 360; Standard = 0).

Gewicht

Die relative Wichtigkeit des Blob-Winkels bei der Berechnung der Ähnlichkeit (0 bis 100; Standard = 0).

Fläche

Mit diesem Parameter kann die Übereinstimmungsformel, die die ideale Flächengüte der gefundenen Blobs definiert, eingestellt werden.

Flächengüte-Formel

Die FindBlobs-Flächengüte wird mithilfe folgender Formeln berechnet, abhängig vom Wert BlobAreaVal und dem Wert für Fläche:

  • Falls BlobAreaVal größer als der Wert der Fläche ist, wird diese Formel verwendet:

    Flächengüte = [(Bereich + Fläche) - BlobAreaVal]/Bereich * WeightVal

  • Falls BlobAreaVal kleiner als der Wert der Fläche ist, wird diese Formel verwendet:

    Flächengüte = [BlobAreaVal - (Fläche - Bereich)]/Bereich * WeightVal

    BlobAreaVal = der Ausgabe-Flächenwert des referenzierten Blobs

    WeightVal = Gewicht/(Summe aller Gewichtswerte) * 100

Fläche

Die ideale Blob-Flächengröße, in Pixel (0 bis 900000; Standard = 1000).

Bereich

Die Blob-Flächentoleranz bei der Berechnung der Ähnlichkeit (0 bis 900000; Standard = 20000).

Gewicht

Die relative Wichtigkeit der Blobfläche bei der Berechnung der Ähnlichkeit (0 bis 100; Standard = 50) .

Streckung

Mit diesem Parameter kann die Übereinstimmungsformel, die die ideale Streckungsgüte der gefundenen Blobs definiert, eingestellt werden.

Streckungsgüte-Formel

Die FindBlobs-Streckungsgüte wird mit der folgenden Formel berechnet:

Streckungsgüte = [(Bereich + Streckung) - BlobElongationVal]/Bereich * WeightVal

BlobElongationVal= des Ausgangs-Streckungswert des referenzierten Blobs

WeightVal = Gewicht/(Summe aller Gewichtswerte) * 100

Streckung

Die ideale Blob-Streckungsgröße, in Pixel (0 bis 900000; Standard = 1).

Bereich

Die Blob-Streckungstoleranz bei der Berechnung der Ähnlichkeit (0 bis 900000; Standard = 2).

Gewicht

Die relative Wichtigkeit der Blobstreckung bei der Berechnung der Ähnlichkeit (0 bis 100; Standard = 50).

Löcher

Mit diesem Parameter kann die Übereinstimmungsformel, die die ideale Löchergüte der gefundenen Blobs definiert, eingestellt werden.

Löchergüte-Formel

Die FindBlobs-Löchergüte wird mit der folgenden Formel berechnet:

Löchergüte = [(Bereich + Anzahl) - BlobHolesVal]/Bereich * WeightVal

BlobAreaVal = der Ausgangs-Löcherwert des referenzierten Blobs

WeightVal = Gewicht/(Summe aller Gewichtswerte) * 100

Anzahl

Die ideale Blob-Löchergröße, in Pixel (0 bis 10000; Standard = 0).

Bereich

Die Blob-Löchertoleranz bei der Berechnung der Ähnlichkeit (0 bis 10000; Standard = 2).

Gewicht

Die relative Wichtigkeit der Anzahl der Bloblöcher bei der Berechnung der Ähnlichkeit (0 bis 100; Standard = 0).

Umfang

Mit diesem Parameter kann die Übereinstimmungsformel, die die ideale Umfangsgüte der gefundenen Blobs definiert, eingestellt werden.

Umfanggüte-Formel

Die FindBlobs-Umfangsgüte wird mit der folgenden Formel berechnet:

Umfangsgüte = [(Bereich + Umfang) - BlobPerimeterVal]/Bereich * WeightVal

BlobPerimeterVal = der Ausgabe-Umfangswert des referenzierten Blobs

WeightVal = Gewicht/(Summe aller Gewichtswerte) * 100

Umfang

Die ideale Blob-Umfangsgröße, in Pixel (0 bis 100000; Standard = 1000).

Bereich

Die Blob-Umfangstoleranz bei der Berechnung der Ähnlichkeit (0 bis 100000; Standard = 10000).

Gewicht

Die relative Wichtigkeit des Blobumfangs bei der Berechnung der Ähnlichkeit (0 bis 100; Standard = 50).

Ausdehnung

Mit diesem Parameter kann die Übereinstimmungsformel, die die ideale Ausdehnungsgüte der gefundenen Blobs definiert, eingestellt werden.

Ausdehnungsgüte-Formel

Die FindBlobs-Ausdehnungsgüte wird mit der folgenden Formel berechnet:

Ausdehnungsgüte = [(Bereich + Ausdehnung) - BlobSpreadVal]/Bereich * WeightVal

BlobSpreadVal = der Ausgabe-Ausdehnungswert des referenzierten Blobs

WeightVal = Gewicht/(Summe aller Gewichtswerte) * 100

Ausdehnung

Die ideale Blob-Ausdehnungsgröße in Pixel (0 bis 900000; Standard = 1).

Bereich

Die Blob-Ausdehnungstoleranz bei der Berechnung der Ähnlichkeit (0 bis 900000; Standard = 2).

Gewicht

Die relative Wichtigkeit der Blobausdehnung bei der Berechnung der Ähnlichkeit (0 bis 100; Standard = 50).

Anzeigen

Legt den Anzeigemodus für FindBlobs-Grafiküberlagerungen fest, die über dem Bild angezeigt werden.

0 = Alle ausblenden (Standard)

Alle Grafiken werden nur angezeigt, wenn die Zelle mit der FindBlobs-Funktion in der Tabelle markiert ist.

1 = Nur Ergebnis-Grafik

Blob-Umrisse werden immer angezeigt.

FindBlobs – Ausgaben

Rückgabewert

Eine Blobs-Datenstruktur mit den übereinstimmenden Blobs, sortiert nach Güte, oder #ERR, wenn einer der Eingabeparameter ungültig ist.

Ergebnisse

Wenn FindBlobs erstmals in eine Zelle eingefügt wird, wird mit den folgenden Blobs Datenzugriffsfunktionen eine Ergebnistabelle in der Tabelle erstellt:

Hinweis:
  • Wenn der Wert des Parameters Anzahl größer als Null ist, fügt FindBlobs automatisch eine Ergebnistabelle mit maximal 10 Einträgen ein, die den ersten 10 Blobs in der Blobs-Datenstruktur entsprechen. Möchten Sie mehr Einträge anzeigen lassen, können Sie die Tabelle durch kopieren der letzten Zeile und das Einfügen weiterer Zeilen am Ende erweitern. Vergewissern Sie sich, dass der Index der neu eingefügten Zeilen inkrementiert wird, so dass der korrekte Blob indiziert wird.
  • Über die Blobs Datenzugriffsfunktionen kann auf zusätzliche Datenelemente zugegriffen werden.

Tabellenbeschriftung Funktion Beschreibung
Index   Die indizierte Position eines Blobs.

X

GetX(Blobs, Blob Index)

Gibt die x-Koordinate des Massenmittelpunkts (Schwerpunkt) des referenzierten Blobs zurück.

Y

GetY(Blobs, Blob Index)

Gibt die y-Koordinate des Massenmittelpunkts (Schwerpunkt) des referenzierten Blobs zurück.

Winkel

GetAngle(Blobs, Blob Index)

Gibt den Winkel zwischen dem gefundenen Mittelpunkt des Blobs und dem Mittelpunkt des ROI an.

Farbe

GetColor(Blobs, Blob Index)

Gibt den Farbwert des referenzierten Blobs zurück (0 = schwarz, 1 = weiß).

Güte

GetScore(Blobs, Blob Index)

Ein Maß dessen, in welchem Grad der Blob den Kriterien der Funktion FindBlobs entspricht.

Fläche

GetArea(Blobs, Blob Index)

Gibt die Fläche des referenzierten Blobs in Pixel zurück.

Hinweis: Wenn der Blob Löcher enthält, variiert der Wert Fläche und hängt davon ab, ob das Kontrollkästchen „Löcher füllen“ aktiviert oder deaktiviert ist.

Streckung

GetElongation(Blobs, Blob Index)

Gibt einen Wert zurück, der darstellt, wie weit die Pixel eines Blobs vom Massenmittelpunkt (Zentroid) gestreckt sind. Als Beispiel würde ein Kreis eine Streckung von 0 aufweisen, während ein Nagel eine hohe Streckung hätte.

Löcher

GetHoles(Blobs, Blob Index)

Gibt die Anzahl der Löcher innerhalb des referenzierten Blobs zurück.

Umfang

GetPerimeter(Blobs, Blob Index)

Gibt die Länge der Umrandung des referenzierten Blobs zurück. Der Umfang wird berechnet durch Zählen der externen Kanten der Pixel, die die Umrandung des Blobs bilden.

Ausdehnung

GetSpread(Blobs, Blob Index)

Gibt einen Wert zurück, der darstellt, wie weit die Pixel eines Blobs vom Massenmittelpunkt (Zentroid) verteilt sind. Als Beispiel würde ein kreisförmiges Objekt einen niedrigeren Wert für Ausdehnung haben als ein ovales Objekt.