Fliesenbreitenmessung

Measuring Tile Width

Messungen können je nach Kontext des Projekts herausfordernd sein. Die sofort einsatzbereiten Funktionsblöcke von AugeLab Studio ermöglichen einfache und schnelle Messungen zu einem solchen herausfordernden Thema.

Dieses Beispiel zeigt dir, wie man die Breite (effektiv die Entfernung) einer Holzfliese misst.

Zuerst verwenden Sie den Funktionsblock Load Image und laden Sie wood.jpg aus dem Ordner mit Beispielbildern, der von AugeLab Studio bereitgestellt wird.

Unser Ziel ist es, die Breite jeder Fliese zu messen und sie auszudrucken. Als Nächstes müssen wir dieses Bild vorverarbeiten, um Rauschen zu reduzieren, das durch die Kamera oder die Umgebung eingeführt werden kann. In solchen Fällen ist der Funktionsblock Blur eine sehr gute Wahl mit der Option Median Blur. Legen Sie die folgende Logik an:

Wir halten die Kernel Size auf 3, um die Vorverarbeitung auf ein Minimum zu reduzieren, da jede Art von Vorverarbeitung das Endergebnis während der Messungen beeinflussen kann. Als Nächstes verwenden wir den Funktionsblock Histogram on Line.

Der Funktionsblock Histogram on Line erkennt automatisch scharfe Kanten, speichert deren Positionen als Punkte anhand der angegebenen Schwellenwerte und Positionswerte. Indem wir die folgende Logik erstellen:

Sagen wir dem Block Histogram on Line, dass er Kanten an der 100. horizontalen Pixelposition berechnen soll und nach Kanten sucht, die Werte über 100 überschreiten (was zwischen 0-255 liegen kann).

Die horizontale Position der Erkennungslinie (zweiter Anschluss) ist am wichtigsten, da andere Faktoren leicht zu falschen Erkennungen führen können. Lassen Sie uns 350 angeben und sehen, was in einem solchen Szenario passiert:

Die Auswahl einer horizontalen Linie mit mehr Störungen hat zu falschen Erkennungen geführt. Daher wird immer empfohlen, eine Linie zu wählen, die möglichst wenig von Rauschen und der Umgebung betroffen ist.

Da wir erfolgreich die Kantenpositionen jeder Fliese berechnet haben, können wir die Breite der ersten Fliese mit mehreren Blöcken berechnen.

Zuerst verwenden wir die Ausgabe Peak Mean Locations des Blocks Histogram on Line. Diese Ausgabe besteht aus einer Liste von Positionen:

Jede Position enthält horizontale und vertikale Positionen (x, y) der Spitzenpositionen. Wir können die Entfernung zwischen jedem Punkt berechnen, entweder mit dem Block Demux oder mit dem Funktionsblock Measure Position Distance.

Verwenden Sie den Block List Operations und wählen Sie get aus dem Dropdown-Menü. Befolgen Sie die folgende Logik:

Die obige Logik wählt das erste Element aus, indem sie null (0) angibt, und das zweite Element, indem sie eins (1) angibt. Mit Measure Position Distance werden die x-y und die euklidischen Entfernungen berechnet und angezeigt.

Vielleicht ist dir aufgefallen, dass die y-Distanz null ist, da alle Punkte auf der gleichen horizontalen Linie liegen.

Das war's! Du hast erfolgreich die Breite der ersten Fliese berechnet.

Calculating all tile widths

Nun lass uns die anderen Breiten mit Listen- und Batchoperationen berechnen.

Indem wir denselben Funktionsblock List Operations verwenden, verwenden wir die pop-Option aus dem Dropdown-Menü. Die Pop-Option entfernt das Element an einem bestimmten Index aus einer Liste. Lass uns erneut die folgende Logik erstellen:

Der Block List Operations kopiert zuerst die bereitgestellte Liste und berechnet dann das gewünschte Ergebnis. Wir haben eine Liste der Spitzenpositionen ohne das erste Element erstellt und dann eine weitere Liste, indem wir nur das letzte entfernt haben.

Wenn wir diese mit Batch Processing und dem Data Type Converter verwenden, können wir die positionsbedingte Differenz zwischen den einzelnen Spitzenpunkten berechnen:

Es ist wichtig, den Data Type Converter zu verwenden, wenn Sie mit Batchverarbeitung umgehen. Wenn ein Funktionsblock eine Charge erhält, wird er im Batchmodus ausgeführt. Verwenden Sie die Option Batch2List aus dem Menü, um zum normalen Betriebsmodus zurückzukehren.

Das ist alles! Du hast die Breite aller Fliesen berechnet!

Last updated