LabVIEWForum.de - Objekt im Bild suchen.

LabVIEWForum.de

Normale Version: Objekt im Bild suchen.
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

Ich möchte gerne ein rechteckiges Objekt, automatisch (programmatisch) in einem Bild suchen. Aber das Referenzobjekt kann größer, kleiner oder die gleiche Größe haben, wie das gesuchte Objekt.
Nur der Inhalt des Objekts ist mir interessant. Die große des gesuchten Objekts bleibt zuerst erhalten, danach kalibriert und mit der Referenz vergleichen.

NB: Ich arbeite mit LabVIEW 7.1, LabVIEW Image Vision Packet.

Wäre genial, wenn mir jemand helfen könnte.

Gruß,
Kouakouy.
Kannst Du ein-Zwei Bilder dazu hochladen?

Dann kann man zusammen an einer guten Lösung arbeiten - ein VI/Bild sagt mehr als 1000 Worte...Big Grin

Gruß
Hi!

Hier Anbei sind Bilder und Objekt. Die Position des Objekts im Bild kann unterschiedlich sein. Und wie man sieht, die Große des Objekts im Bild kann gleich oder ungleich sein. Die Bilder stellen ein Monitorbildschirm dar. Das Objekt kann eine Landkarte oder Tasse oder LabVIEWforum Logo sein.

Objekt= [attachment=6220]

Bilder : Bild1= [attachment=6221] Bild2 = [attachment=6222] Bild3 = [attachment=6223]

Gruß,

Kouakouy
Hi!

Wenn du genau das Bild suchen willst würd ich dir eine Funktion empfehlen die heißt so ähnlich wie "learn Pattern", kannst in der suche einfach mal "pattern eingeben". Da lernst du dann das erste Bild in deinem Post.

Danach auf alle anderen Bilder die Funktion "find pattern" oder so ähnlich anwenden!
Dadurch kriegst du die Position, die Größe und den Winkel des gelernten Bildes im neuen Bild.

Danach schneidest du das gefundene Pattern raus( wenns nicht verdreht is gar kein problem aber geht anders auch) mit "IMAQ extract". Dann mit "resample" auf die größe der Referenz und vergleichen!

Ich weiß im moment leider die genauen VI-Namen nicht auswendig, aber die schreib ich dir die nächsten tage falls du sie net findest.
(wenn ich zeit find vll. mit nem kleinen Bsp.)

mfg n00b
Hi!

Vielen Dank für deinen Tipp. Ich hatte auch einen anderen Ansatz; „edge detection“. Ich werde diese beiden Ansätze versuchen.

Gruß,

Kouakouy.
Hi!

Mit "Learn Pattern" gibt folgende Probleme:

1- Wenn Objektgrosse = gesuchte Objektgrosse , klappt
[attachment=6382]

2- andersfalls klappt nicht.
[attachment=6383]

wie kann ich alle fälle berücksichtigen?

Gruss,

Kouakouy.
Hmmm...

a) Du machst mehrere Referenzbilder -mit allen Größen und suchst immer mit allen, bis das erste erfolgreich ist.

b) Du verkleinerst/Vergrößerst Dein Pattern nach erfolgrlosem suchen und startest Deine Suche eneut. (Das geht auch rekursiv! - coolBig Grin)

c) Du findest ein Merkmal Ausserhalb des zu findenden Bildes, anhand dessen Du dann berechnest um wieviel gezoomt werden muß - z.B. Fläche, die nicht Bild ist = weiß!?..Fläche-Dreisatz-Bildgrösse).

Gruß
Hi!

Hmmm...

Dein Vorschlag ist nicht schlecht; aber die Referenz soll nicht geändert werden.

Mit „ImaQ edgedetection.vi“ habe ich das Bild lokalisiert und dann mit „ImaQ Extract“ ausgeschnitten. So habe ich das Problem gelöst.

Gruss,

kouakouy.
Hallo,

eine Kante zu finden hat da keinen Sinn. Und wenn das Zielobjekt verschieden gross sein kann,kann wohl auch das Lernobjekt vergrößert und verkleinert sein - oder?

Also: weg mit der Kantensuch

Gottfried
Bin mir grad nicht ganz sicher aber ich denke bei dem find pattern kann man bei einem setup_input einstellen, dass das Bild auch mit anderer Größe erkannt wird. (Das is irgendeine boolsche variable die man da setzen muss..)
Referenz-URLs