Passt schon, du hast, was du brauchst.
So, jetzt lass uns mal langsam und Schritt für Schritt durchgehen.
Damit wir die gleichen Begriffe verwenden:
- ich definiere jetzt mal: Das Idealbild entspricht dem von einem Musterbauteil
- das Prüfbild ist das, was dann später x mal neu daherkommt.
Gehen wir ausserdem zur Vereinfachung davon aus, dass du mit 1 Idealbild arbeitest, und das noch nicht aus 5 Bildern errechnest. Das können wir nachher relativ leicht einfügen.
Wir machen die Reihenfolge so:
1) Das, was du hast, schnell in IMAQ umsetzen
2) Dein Idealbild "lernen" und dann im Prüfbild auffinden (nennt sich Geometric Matching)
3) Das Prüfbild so hin"drehen", dass die beiden übereinanderliegen (Koordinatensystem setzen)
4) Die beiden Bilder vergleichen (Golden Template Matching)
5) Profit!!
Gut.Starte mal ein Programm namens "Vision Assistant", das ist irgendwo bei den NI Sachen drinnen.
Das ist eine interaktive Benutzerfläche, mit der man sehr gut LabVIEW-Algorithmen prototypen kann. Die kann man dann in LabVIEW-Code umwandeln, der zwar nicht optimal ist, aber funktioniert und eine gute Basis für spätere Programme ist.
Da ich keine Probebilder von dir habe, nehme ich mal meine eigenen.
Das heisst, deine Parameter werden anders sein, aber du musst halt Schritt für Schritt die Ergebnisse nachbauen.
Im ersten Schritt laden wir alle Bilder. Das heisst Idealbild und mehrere Prüfbilder.
Ich hab RGB-Bilder, dh ich mach noch einen kleinen Zwischenschritt (Color Plane Extraction) um Graubilder zu kriegen, aber der wird dich vermutlich nicht interessieren.
Mit diesen Pfeiltasten (die ganz rechte) kannst du dir dein Idealbild ins Fenster holen (ich hab hier grad ein anderes drinnen).
Im Idealbild erkennen wir die Kanten. Die sind bei Grayscale - Filtern drinnen.
Ich hab bei meinem einen einfachen Sobel genommen, weil er ein sauberes Ergebnis geliefert hat, evtl. nimmst du einen anderen Kernel (weiter unten kannst du deine eigenen definieren). Das Ziel ist auf jeden Fall ein sauberes Kantenbild.
So.
Nächster Schritt.
Geometric Matching.
Findest du ebenfalls links - bei Machine Vision - Geometric Matching. Wenn du das doppelt anklickst, kriegst du erst mal einen gekreuzten Mauszeuger, mit dem du ein Reckteck markieren kannst, in dem du suchen willst (sogenannten ROI). Im Zweifelsfall ziehst du den über das gesamte Bild.
Für Geometric Matching musst du erst mal ein Template erstellen, nach dem LabVIEW suchen soll.
Wenn du das klickst, kriegst du ein Fenster, in dem das aktuelle Bild angezeigt wird. Das ist dein momentanes Idealbild (das mit den 5 Bildern machen wir später.. falls nötig).
Du hast so ein Rechteckwerkzeug, und malst jetzt einfach um dein Template rum.
Dann klickst du auf "Next".
In diesem Fenster siehst du, was Vision als Kanten erkennt. Bei mir schaut das, bis auf ein paar Kanten ganz vernünftig aus. Das sind oft so kleine, fisselige Details - und da sage ich Vision, dass er diese Stellen ignorieren soll. Wir können gretrost einiges ignorieren, weil wir vergleichen ja nicht, wir suchen nur eine Position.
Gut.
Jetzt klickst du ein paar mal auf next oder Finish, und dann speicherst du dein Template unter einem sinnvollen Namen: zB geometric_template_01.png ab.
Das ist keine normale png-Datei (die darfst also nicht mit Photoshop verändern), da ist versteckt sogenannte Vision-Info drinnen.
Jetzt sollte das mit dem Suchen auch schon klappen.
Das heisst, wenn du jetzt ein Prüfbild lädts (oben links, Pfeiltasten), dann findet er Drehung und ein Rechteck.
OK, soweit?