DetectBlobs

Die DetectBlobs-Funktion führt eine Form der Blob-Analyse durch, die aus als "Konnektivitätsanalyse" für einen Inspektionsbereich (ROI) bezeichnet wird. Während einer „Konnektivitätsanalyse“ werden die Pixel innerhalb des ROI anhand ihrer Graustufen-Schwellwertes in die zwei Kategorien „Blob“ und „Hintergrund“ kategorisiert. Diese Einteilung teilt alle Pixel unter dem Schwellwert in eine schwarze Kategorie und alle Pixel über dem Schwellwert in eine weiße Kategorie ein.

Auf diesem Wege werden Pixel mit ähnlichen Werten anhand ihrer „Farbe“ und zudem auch anhand dessen gruppiert, ob sie die benachbarten Pixel “berühren” oder nicht. Die Hintergrund-Pixel können mit ihren Nachbarn verbunden sein, wenn sie von Pixeln auf beiden Seiten, unterhalb und oberhalb berührt werden, während Blob-Pixel auch mit ihren Nachbarn verbunden sein können, wenn sie von Pixeln auf einer ihrer Seiten, oberhalb, unterhalb oder diagonal berührt werden.

Wenn das Bild verarbeitet wurde, ist es in Blob- und Hintergrund-Pixelwerte segmentiert. Die im ROI gefundenen Blobs werden anhand ihrer physikalischen Eigenschaften und anhand der ihnen zugewiesenen Werten, wie z. B. ihrer Position im Bild (ihrer x- und y-Koordinaten), ihrer Fläche, ihres Umfangs, ihrer Ausbreitung und Ausdehnung identifiziert. Die Daten aus den extrahierten Blobs werden in einer Blobs-Datenstruktur gespeichert und gemeldet.

Diese Funktion ist der erste Schritt bei der Blob-Analyse. Sowohl FindBlobs als auch SortBlobs verwenden letztendlich Zellreferenzen auf die Blobs-Datenstruktur einer DetectBlobs-Funktion, und zwar entweder direkt oder über eine Prüfung.

DetectBlobs – Eingaben

Parameter Beschreibung

Bild

Dieser Parameter muss auf eine Tabellenzelle verweisen, die eine Bild-Datenstruktur enthält. Standardmäßig verweist dieser Parameter auf A0, die Zelle mit der Datenstruktur. Dieser Parameter kann auch andere Image-Datenstrukturen referenzieren, z. B. solche, die von den Image Datenzugriffsfunktionen oder Koordinatenumrechnungsfunktionen 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 ROI relativ zu einer Vorrichtung bestimmt, stellt man sicher, dass beim Verdrehen oder Umsetzen der Vorrichtung auch der Inspektionsbereich im Verhältnis zur Vorrichtung verdreht 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 im Vorrichtungskoordinatensystem.

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.

Krümmung

Die Winkelabweichung zwischen der x-Achse des Bereichs und der gegenüberliegenden Grenzlinie des Bereichs.

Hinweis: Die Parameter Vorrichtung und Bereich müssen innerhalb der Bildgrenzen festgelegt werden. Andernfalls gibt die Funktion #ERR zurück.

Externer Bereich

Dieser Parameter verwendet Zellreferenzen auf die Funktionen Annulus, Kreis, Bereich, EditAnnulus, EditCircle, EditCompositeRegion, EditPolygon und EditRegion. Wenn dieser Parameter verwendet wird, ignoriert die Funktion die Einstellungen für Bereich und Vorrichtung und inspiziert den im referenzierten Bereich angegebenen Bildbereich. Wird ein EditCompositeRegion-Steuerelement referenziert, kann der Inspektionsbereich verschiedene Formen beinhalten. Jede Form des zusammengesetzten Bereichs kann dem Inspektionsbereich hinzugefügt oder von ihm entfernt werden (Masking).

Hinweis: Wenn dieser Parameter als Referenz auf einen äußeren Bereich eingestellt wurde, um den internen Bereich einer Funktion zu verwenden, muss dieser Parameter manuell auf Null gestellt werden, indem man den Wert 0 anstelle der Zellreferenz einträgt. Andernfalls wird die Funktion weiterhin den externen Bereich referenzieren.

Zu sort. Anzahl

 

Gibt die Anzahl der zu sortierenden Blobs an.

0

Gibt alle Blobs zurück, die den Farb- und Größeneinstellungen entsprechen, die in den Parametern von Farbe: Blob/Farbe: Hintergrund und Bereichsgrenze: Min/Bereichsgrenze: Max angegeben sind.

1 bis 4096 (Standard = 1)

Gibt Blobs bis zur angegebenen Anzahl zurück, die den Farb- und Größeneinstellungen entsprechen, die in den Parametern von Farbe: Blob/Farbe: Hintergrund und Bereichsgrenze: Min/Bereichsgrenze: Max angegeben sind. Wenn mehr Blobs gefunden werden, werden Blobs mit der größten Fläche ausgewählt.

Hinweis: Wenn der Wert des Parameters Zu sort. Anzahl größer als Null ist, fügt DetectBlobs 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.

Schwellenwert

 

Gibt den Graustufenwert an, mit denen Blobs vom Hintergrund unterschieden werden. Dieser Wert kann durch Verwenden der automatischen Einstellung der DetectBlobs-Funktion (der Standardeinstellung) bestimmt werden, durch Ausprobieren manuell konfiguriert werden, oder als Zellreferenzenauf die berechneten Ergebnisse einer Histogramm-Funktion festgelegt werden.

-1 (Standard)

Die Funktion wertet und berechnet automatisch einen Schwellwert aufgrund der Graustufen-Statistiken des Bilds.

0 bis 255

Legt einen Graustufenwert zwischen 0 und 255 fest.

Löcher füllen

Gibt eine oder zwei Methoden für die Bearbeitung von Statistiken der gespeicherten Löcher an.

0 = AUS (Standard)

Aktiviert den Beitrag der Löcher zur Gesamtstatistik. Ein Hinzufügen von Löchern zu einem Blob würde zum Beispiel dessen Fläche verkleinern.

Hinweis:

Bei Einstellung auf AUS werden Blobs gemeldet, die Löcher in einem anderen Blob sind. Im folgenden Beispiel wird Blob 1 gemeldet, bei dem es sich um ein Loch in Blob 0 handelt. In der Blobstatistik enthält der Wert für die Fläche von Blob 0 (obere Reihe) nicht die Fläche von Blob 1 (untere Reihe).

1 = EIN

Deaktiviert den Beitrag der Löcher zur Gesamtstatistik. Ein Hinzufügen von Löchern zu einem Blob würde zum Beispiel keine Auswirkung auf dessen Fläche haben.

Hinweis:

Bei Einstellung auf EIN werden Blobs, die Löcher in einem anderen Blob sind, ignoriert. Im folgenden Beispiel wird ein Loch in Blob 0 ignoriert, und es wird nur ein einzelner Blob (Blob 0) gemeldet. In der Blobstatistik enthält der Wert für den Bereich von Blob 0 den gesamten Blobbereich, das Loch eingeschlossen.

Randbereich-Blobs

Gibt eine oder zwei Methoden für die Handhabung von Blobs, die den Randbereich des ROI überschneiden.

0 = AUS

Schließt Blobs aus, die die ROI-Grenze schneiden. Alle Blobs, die die ROI-Grenze schneiden, werden der endgültigen Blobs-Datenstruktur nicht hinzugefügt.

1 = EIN (Standard)

Enthält Blobs, die die ROI-Grenze schneiden. Alle Blobs, die die ROI-Grenze schneiden, werden der endgültigen Blobs-Datenstruktur hinzugefügt (vorausgesetzt, sie erfüllen außerdem die angegebenen Einstellungen für die Parameter von Farbe: Blob/Farbe: Hintergrund und Bereichsgrenze: Min/Bereichsgrenze: Max).

Farbe: Blob

Definiert die Farbe des Blobs.

0 = Schwarz

Gibt nur Blobs zurück, die unter dem angegebenen Graustufen-Schwellwert liegen.

1 = Weiß

Gibt nur Blobs zurück, die über dem angegebenen Graustufen-Schwellwert liegen.

2 = Beide (Standard)

Keine Anforderungen für die Blobfarbe vorhanden.

Hinweis:

Wenn Farbe: Blob und Farbe: Hintergrund auf die gleiche Farbe eingestellt sind, werden Blobs nicht gemeldet. Wenn beispielsweise Farbe: Blob auf Schwarz eingestellt ist, und Farbe: Hintergrund ebenfalls auf Schwarz eingestellt ist, werden Blobs nicht gemeldet.

Farbe: Blob = Schwarz

Farbe: Hintergrund = Schwarz

Farbe: Blob = Beides oder Weiß

Farbe: Hintergrund = Schwarz

Jedoch selbst wenn Farbe: Blob und Farbe: Hintergrund auf die gleiche Farbe eingestellt sind, werden Blobs gemeldet, wenn sie von einer Fläche der entgegengesetzten Farbe umgeben sind (siehe die folgenden Beispiele). Wenn ein Teil des Blobs nicht von der anderen Farbe umfasst wird, wird der Blob nicht gemeldet.

Farbe: Blob = Schwarz

Farbe: Hintergrund = Schwarz

Farbe: Blob = Weiß

Farbe: Hintergrund = Weiß

Farbe: Hintergrund

Legt die Hintergrundfarbe im aufgenommenen Bild fest. Die 8-fache Konnektivitätsanalyse wird im Vordergrund ausgeführt, die 4-fache Konnektivitätsanalyse wird im Hintergrund durchgeführt.

0 = Schwarz

1 = Weiß (Standard)

Bereichsgrenze: Min

Legt eine minimale Bereichsgrenze in Anzahl an Pixeln für alle zurückgegebenen Blobs fest (Standard = 100). Nur Blobs, deren Fläche größer als der Wert der Bereichsgrenze: Min, werden zurückgegeben.

Der Parameterbereich ist:

  • Unterer Grenzwert: 0
  • Oberer Grenzwert: Auflösung (Breite * Höhe) des angeschlossenen Vision-Systems.

Beispiel: Bei einer Verbindung mit dem Vision-System In-Sight D902 beträgt der Parameterbereich 0 bis 2.304.000 (1920 x 1200).

Bereichsgrenze: Max

Legt eine maximale Bereichsgrenze in Anzahl an Pixeln für alle zurückgegebenen Blobs fest (Standard = 100000). Nur Blobs, deren Fläche kleiner ist als die Bereichsgrenze: Max werden zurückgegeben.

Der Parameterbereich ist:

  • Unterer Grenzwert: 0
  • Oberer Grenzwert: Auflösung (Breite * Höhe) des angeschlossenen Vision-Systems.

Beispiel: Bei einer Verbindung mit dem Vision-System In-Sight D902 beträgt der Parameterbereich 0 bis 2.304.000 (1920 x 1200).

Anzeigen

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

0 = Alle ausblenden (Standard)

Alle Grafiken werden nur angezeigt, wenn die Zelle mit der Funktion „DetectBlobs“ in der Tabelle markiert ist.

1 = Nur Ergebnis-Grafik

Blob-Umrisse werden immer angezeigt.

2 = Eingabe- und Ergebnis-Grafik

Die Eingabebildregion und die Umrisse von extrahierten Blobs werden immer angezeigt.

DetectBlobs – Ausgaben

Rückgabewert

Eine Blobs-Datenstruktur, die die aus dem Bild extrahierten Blobs enthält, oder #ERR, wenn einer der Eingabeparameter ungültig ist.

Ergebnisse

Wenn DetectBlobs in eine Zelle eingefügt wird, wird eine Ergebnistabelle in der Tabelle mit den folgenden Blobs Datenzugriffsfunktionen

Hinweis:
  • Wenn Zu sort. Anzahl0 ist, besteht die Tabelle nur aus der GetNFound-Funktion.
  • Wenn der Wert des Parameters Zu sort. Anzahl größer als Null ist, fügt DetectBlobs 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.
Label

Name der Funktion

Beschreibung

X

GetX(Blobs, Blob Index)

Gibt die x-Koordinate des Massenmittelpunkts (Zentroid) eines Blobs zurück.

Y

GetY(Blobs, Blob Index)

Gibt die y-Koordinate des Massenmittelpunkts (Zentroid) eines Blobs zurück.

Winkel

GetAngle(Blobs, Blob Index)

Gibt den Winkel der Hauptachse eines Blobs in Bezug auf die y-Achse zurück.

Farbe

GetColor(Blobs, Blob Index)

Gibt den Farbwert eines 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 gefundenen 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 Blobs zurück.

Hinweis: Nur Löcher, deren Fläche größer ist als die Bereichsgrenze: Min, werden zurückgegeben.

Umfang

GetPerimeter(Blobs, Blob Index)

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

Ausdehnung

GetSpread(Blobs, Blob Index)

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

DetectBlobs Beispiel

Die DetectBlobs-Funktion wird zur Identifizierung und Positionierung von Blobs, also von verbundenen Pixeln, verwendet, die verschiedene Formen und Größen haben können. Dieses Beispiel veranschaulicht, wie sich die in der Ergebnistabelle der DetectBlobs-Datenstruktur zurückgegebenen Informationen auf die gefundenen Blobs beziehen und wie diese Informationen später zum Sortieren und Filtern der Blobs anhand ihrer Merkmale verwendet werden können.

Für dieses Beispiel wurde das folgende Bild verwendet, um die Bedeutung der Werte zu veranschaulichen, die in der Ergebnistabelle der DetectBlobs-Funktion zurückgegeben werden:

Eine DetectBlobs-Funktion wurde in eine leere Zelle des Arbeitsblatts eingefügt. Anhand der Formen wurden die Parameter des Eigenschaftsblatts von DetectBlobs wie folgt konfiguriert:

  • Bild: Für dieses Beispiel wurde die Standardeinstellung verwendet. Dieser Parameter kann jedoch auf jede Bild-Datenstruktur verweisen, wie z. B. eine Image-Datenstruktur, die von einer Filter-Funktion erzeugt wird, die das Bild verarbeitet, um übermäßiges Bildrauschen zu entfernen, bevor es auf Blobs untersucht wird.
  • Vorrichtung: Die Standardeinstellung wurde verwendet, da das Bild stationär ist und nicht gedreht oder verschoben werden soll. Wenn Sie jedoch die DetectBlobs-Funktion auf bewegte Bilder anwenden, empfiehlt es sich, den Bildbereich einer Vorrichtung zuzuweisen.
  • Bereich: Der Bildbereich wurde maximiert, damit alle Formen in der Analyse einbezogen werden. Wenn Sie auf den Parameter „Bereich“ und anschließend in der Symbolleiste des Eigenschaftsblattes auf die Schaltfläche „Bereich maximieren“ klicken, wird der Bereich automatisch gedehnt, so dass er das ganze Bild erfasst.
  • Zu sort. Anzahl: Die Zu sort. Anzahl wurde auf sechs eingestellt. Dieser Parameter hätte auch auf 0 gesetzt werden können, und das Werkzeug hätte automatisch alle Blobs extrahiert, die den Farb- und Größeneinstellungen entsprechen, die in den Parametern von Farbe: Blob/Farbe: Hintergrund und Bereichsgrenze: Min/Bereichsgrenze: Max angegeben sind.
  • Schwellenwert: Es wurde die Standardeinstellung verwendet, die automatisch den Schwellenwert der Graustufen berechnet. Die Graustufen-Unterschiede sind diesem Bild sehr ausgeprägt und es ist eindeutig, welche Pixel die dunklen und welche die hellen Pixel sind. In Anwendungen, wo die Übergänge subtiler sind und die automatische Einstellung für den Schwellwert die Werte nicht gut trennt, können Histogramm-Funktionen, wie z. B. die HistHead- oder die HistTail-Funktionen sehr hilfreich sein, um die Graustufen-Intensitäten in den verschiedenen Bereichen des Bilds bestimmen zu können.
  • Löcher füllen: Es wurde die Standardeinstellung verwendet, die den Beitrag der in den Blobs gefundenen Löcher ermöglicht, wodurch der Gesamtbereich dieser Blobformen mit Löchern verringert wird. Bei Aktivierung des Kontrollkästchens „Löcher füllen“ würden Löcher innerhalb von Blobs gemeldet werden und die Fläche in den Löchern würde hinzugefügt werden, wodurch sich die Fläche der Blobs mit Löchern vergrößert.
  • Randbereich-Blobs: Es wurde die Standardeinstellung verwendet, die alle Blobs enthält, die den Randbereich des Bildbereichs schneiden. Wenn bei dieser Einstellung das Bild nach links verschoben wurde und der größte Kreis und das kleinste Quadrat den am weitesten links liegenden Rand des Bildbereichs schneiden, werden die Teile dieser Formen, die noch innerhalb der Bereichsgrenze liegen, als Blobs extrahiert. Hätten wir aber das Kontrollkästchen abgewählt, wären diese Blobs nicht bearbeitet worden.
  • Bereichsgrenze: Min/Max: Es wurden die Standardeinstellungen verwendet. Diese Einstellungen filtern die Blobs im Bereich während der Extraktionsphase, und bewerten die Blobs anhand der minimalen und maximalen Einstellungen für die Bereichsgrenze, um zu entscheiden, ob die Fläche des Blobs es ermöglicht, den Blob als Blob zu klassifizieren.
  • Anzeigen: Es wurde die Standardeinstellung verwendet, die das Anzeigen der Ergebnisgrafiken nur erlaubt, wenn die Zelle mit der Blobs-Datenstruktur ausgewählt ist, wie im folgenden Beispiel.

Nach dem Konfigurieren des Eigenschaftsblatts von DetectBlobs werden eine Blobs-Datenstruktur und eine Ergebnisdatentabelle erstellt.

Die in der Ergebnistabelle zurückgegebenen Werte können, mithilfe der FindBlobs- und SortBlobs-Funktionen, zum Filtern und Sortieren der Blobs verwendet werden. Beispielsweise könnte eine FindBlobs-Funktion in das Arbeitsblatt eingefügt werden und auf die DetectBlobs-Funktion verweisen. Die FindBlobs-Funktion könnte dann zum Filtern der Blobs anhand ihrer Ausdehnung verwendet werden. Dann könnte eine SortBlobs-Funktion in die Tabelle eingefügt werden und auf die kürzlich erstellte FindBlobs-Funktion verweisen, um die Liste der Blobs basierend auf der x-, y-Position zu sortieren.