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.
|
||||||||||||||
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.
|
||||||||||||||
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.
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.
|
||||||||||||||
Löcher füllen |
Gibt eine oder zwei Methoden für die Bearbeitung von Statistiken der gespeicherten Löcher an.
|
||||||||||||||
Randbereich-Blobs |
Gibt eine oder zwei Methoden für die Handhabung von Blobs, die den Randbereich des ROI überschneiden.
|
||||||||||||||
Farbe: Blob |
Definiert die Farbe des Blobs.
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.
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: 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.
|
||||||||||||||
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:
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:
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.
|
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:
|
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.