Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Vermessung mittels Bilderfassung (https://www.delphipraxis.net/144303-vermessung-mittels-bilderfassung.html)

peter21 4. Dez 2009 17:18


Vermessung mittels Bilderfassung
 
Hallo,

vielleicht kann mir jemand helfen. Es geht darum, für eine Messwerterfassung die Maschenweite einer textilen Struktur zu erfassen. Mein Gedanke ist es, über eine USB- oder Webcam ein Bild aufzunehmen und durch geeignete Bildumwandlung (Kontraste) die Sichtbarkeit der einzelnen Fäden zu verbessern. Anschließend soll der Abstand gemessen (aus den Pixeln kann in mm umgerechnet) und der Zahlenwert an die Messwerterfassung weitergegeben ewerden.

Gibt es entsprechende Programme, auf die man aufbauen kann oder gar schon die fertige Lösung darstellen. Ich habe soetwas bisher nicht gefunden.

Vielleicht verwende ich auch nur die falschen Suchbegriffe.

Peter

Medium 4. Dez 2009 17:28

Re: Vermessung mittels Bilderfassung
 
Da würde mir spontan ein sog. Ridge-Detector einfallen. Das ist eine Abart eines Kantendetektors, der praktisch die "Mittellinien" von Strukturen herausstellt. (Automatische Kartierungssysteme erkennen damit z.B. Straßenzüge.) Damit würde man dann ein S/W Bild erzeugen können, aus dem sich Abstände zwischen den Fasermitten ermitteln ließen. Prinzipiell ist dabei ein Problem zu erkennen was genau nun eine Masche ist - je nach Gewebe kann sowas ja recht komplex aussehen. Auf Anhieb würde ich die "breitesten" Bereiche als solche identifizieren.

Essentiell ist auf jeden Fall das Ausgangsmaterial. Das Bild sollte waagerecht ausgerichtet sein, keine Kurven im Maschenverlauf haben, und vor allem vom Start weg sehr kontrastreich und scharf. Das wird bei so feinen Strukturen mit einer einfachen Kamera extrem schwierig, nicht zuletzt weil die Auflösung kaum für brauchbare Messergebnisse taugen dürfte. Ich würde hier eher zum guten alten Flachbettscanner tendieren!

Ein anderer Weg wäre die Binärisierung des Bildes anhand eines Schwellwertes. Dazu sollte nur der Kontrast zwischen Fasern/Fäden und Untergrund sehr gut sein, dafür ist's erheblich einfacher als ein Ridge-Detector. Auch dann kann man nach den breitesten untergrundfarbigen Bereichen gucken, wobei man dann natürlich den Abstand von Fadenkante zu Fadenkante bekäme, nicht zu den Mitten. (Wenn man die Fadendicke aber kennt, ist das ja leicht berechenbar.)

peter21 4. Dez 2009 17:35

Re: Vermessung mittels Bilderfassung
 
Hallo Medium,

ich denke, der zweite Lösungsansatz sollte prinzipiell machbar sein. Die Kontraste sind gut. Existieren schon Programmcodes für die Binärisierung?

Für das Einlesen des Bildes und die Abstandsberechnung würde mir schon was einfallen.

Gruß Peter

Medium 4. Dez 2009 17:43

Re: Vermessung mittels Bilderfassung
 
Das ist im Grunde super simpel. Wenn du das Bild als Bitmap geladen hast, wander einfach über alle Pixel und berechne deren Helligkeit. Die einfachste (und in der Regel völlig ausreichende) Variante dazu wäre das Mittel der Farbanteile zu nehmen, also (R+G+B)/3. Dann wählst du einen Schwellenwert, und alle Pixel deren Helligkeit über diesem Wert liegt machst du weiss, alle anderen schwarz. Feddich. Den Schwellwert kann man dann dem einzelnen Bild anpassen, je nach dem was subjektiv die besten Ergebnisse liefert.

peter21 4. Dez 2009 17:45

Re: Vermessung mittels Bilderfassung
 
Danke Medium,

dann werde ich damit an die Arbeit machen.

Gruß Peter

helgew 4. Dez 2009 18:18

Re: Vermessung mittels Bilderfassung
 
Liste der Anhänge anzeigen (Anzahl: 3)
mit fällt spontan der Hough-Algorithmus für Linienerkennung ein, der ist aber recht rechenintensiv. Wie wäre es mit einer Kombination aus Hintergrundbeleuchtung für den Stoff (IR geht ja auch nach Modifikation der webcam) und 2dim FFT?

Eine der Gitterkosntanten ist dein (reziproker) Maschenabstand :-) - die Gitterkonstanten kannst du ableiten, indem du eine Gerade durch die Mitte in Richtung der Stoffbahn legst, noch etwas Varianz hinzugibst und dann eindimensional lokale Maxima suchst. Das erste müsste es schon tun, da die Transformierte dazu noch punktsymmetrisch ist.

jfheins 4. Dez 2009 20:33

Re: Vermessung mittels Bilderfassung
 
Also als fertige Lösung: Du kannst mal MVTec Halcon angucken. das sollte sowas mit Leichtigkeit können ;)
Ist vielleicht mit Kanonen auf Spatzen geschossen, aber ich hab das n paar mal in Aktion gesehen und das Teil ist echt krass :mrgreen:

helgew 4. Dez 2009 20:59

Re: Vermessung mittels Bilderfassung
 
an 2d FFT hab ich auf die Schnelle das hier gefunden, man muss es zwar noch übersetzen, aber daran soll es ja nicht scheitern. Wenn das das Einlesen und dekomprimieren der Bilder kein Problem ist, warum sollte der Threaderöffner dann an der Mathematik und etwas Datenanalyse scheitern? :-)

Corpsman 4. Dez 2009 21:26

Re: Vermessung mittels Bilderfassung
 
es gibt für 2D fft auch noch FFTW in meiner Studienarbeit hab ich da auch ne Schnittstelle für Delphi gemacht, die könnte ich dir evtl raussuchen...

Reinhard Kern 5. Dez 2009 12:40

Re: Vermessung mittels Bilderfassung
 
Hallo,

um eine regelmässig wiederholte Struktur zu finden, ist eine Berechnung der Autokorrelation das geeignete Verfahren, das funktioniert auch noch mit dem schlechtesten Bildmaterial. Der Wert der Autokorrelation hat ein Maximum bei der Maschenweite.

Gruss Reinhard

helgew 5. Dez 2009 13:12

Re: Vermessung mittels Bilderfassung
 
Liste der Anhänge anzeigen (Anzahl: 1)
jein... vom Rechenaufwand schätze ich einen 256x256 Block (640x480 der webcam herunterskaliert und ausgeschnitten) mit FFT als moderater ein, vielleicht täuscht das auch. Mit (Auto-)Korrelation kommt man durch bloßes Verschieben auch nicht weit und muss zweidimensional arbeiten. Vorteil der Methode ist der geringere, geistige Aufwand :-)

ps. durch Verzerren des Stoffes über das Sichtfenster nimmt die Fernordnung rapide ab oder oszilliert sogar, wenn die Verzerrung über eine Maschenweite hinausgeht. In der Fouriertransformierten dreht sich zunächst mal die Phase, die eh niemanden interessiert.

peter21 7. Dez 2009 18:23

Re: Vermessung mittels Bilderfassung
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

vielen Dank für Eure Antworten. Ein komplexes Gewebe zu vermessen, wäre doch eine etwas zu anspruchsvolle Aufgabe für mich. Es geht um die Vermessung von Maschenware mit einem Maschenabstand zwischen 5 und 10 mm (siehe Anlage).

Ich denke, da ist der erste Vorschlag ohne FFT u.ä. der geeignetere.

Peter

helgew 8. Dez 2009 21:20

Re: Vermessung mittels Bilderfassung
 
@peter21 :

einen guten Tipp noch: wenn du eine Lösung zu einem Bildverarbeitungsproblem suchst, fange mit möglichst vielen, verschiedenen Testbildern an, ansonsten bekommst du eine Lösung, die zwar stabil, aber stark selektiv ist ( du möchtest hier die Struktur der Informationen verstehen, nicht die Information auswendiglernen und wiedererkennen).
In Anbetracht des ... nunja... Kartoffelsackes ... wirst du mit einer Untersuchung der Korrelation auf mehreren Skalen ( schreibe dir einen Kantenfilter und einen 50% skalierenden Filter und fange dann mit dem kleinsten Bild an) schnell zu Ergebnissen kommen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz