# 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 Blob-Flä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 Blob-Streckung 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 Blob-Umfangs 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 Blob-Ausdehnung 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 Vision Data Access functions 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 Vision Data Access functions 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. Zum Beispiel würde ein Kreis eine Ausdehnung von 0 aufweisen, während ein Nagel eine hohe Ausdehnung 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 Grenze des referenzierten Blobs zurück. Der Umfang wird berechnet durch Zählen der außenliegenden Kanten der Pixel, die die Grenze 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. Zum Beispiel würde ein kreisförmiges Objekt einen niedrigeren Wert für Ausdehnung haben als ein ovales Objekt.