LabVIEWForum.de - Automatische Erzeugung eines Referenzpunktes

LabVIEWForum.de

Normale Version: Automatische Erzeugung eines Referenzpunktes
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
<div align="left">Hallo Zusammen,

ich schreibe aktuell meine Diplomarbeit und muss LEDs auf elektronischen Bauteilen finden.
Das klappt auch wunderbar. Ich lasse mir dann die Koordinaten der Treffer ausgeben. Diese
werden dann mit Soll-Koordinaten verglichen. Nun zu meinem Problem:

Als Refernzpunkt wird ja immer die linke obere Ecke des Bildes verwendet. Wenn ich
nun während der Messung die Kamera ein bischen verschiebe, so stimmen die erzeugten
Koordinaten nicht mehr. Deshalb möchte ich gerne einen markanten Punkt auf der Oberfläche
des zu überwachenden Objektes definieren der Ursprung aller Messungen sein soll (also soll
die Berechnung der Koordinaten von diesem Punkt aus erfolgen). Wird nun die Kamera verschoben
und LabVIEW erkennt wieder den Referenzpunkt, so stimmen die Koordinaten wieder, da sie ja von
diesem Punkt aus ermittelt werden.

Mein Problem ist allerdings das ich keinen Schimmer davon habe wie ich bei diesem Problem vorgehen soll!

Kann mir einer vielleicht helfen wie das Erzeugen eines solchen Refernzpunktes auf einem Bild funktioniert und
wie man dann die Distanz (koordinaten) von diesem Punkt zu einem Obejkt ermittelt?????

Wäre echt klasse!!!

Gruß Timo

PS: Noch ein GUTES NEUES JAHR 2007!!!!!</div>
<div align="left">PS: Der Refernzpunkt soll durch den Anwender durch anklicken bestimmt werden, also
nicht wie oben beschrieben automatisch erfolgen!!!!</div>
Hi,

du kannst ein Event erzeugen, dass auf "on click" reagiert. Hier liest du dir dann die Koordinaten aus. Damit hast du dann eine neue Referenz.

Gruß
<div align="left">Und wie geht das genau mit "onklick"? Hab das nicht gefunden. Kannst
mir da vielleicht weiterhelfen???

Danke und bis dann!

Timo</div>
Nun das ganze ist die Grundidee. Wie du das genau machen musst hängt davon ab, wie du dein Bild darstellst?
Mit Vision? Als Bild? In einem Graphen?

Prinzipiell kannst du von allen Frontpanel Elementen ein Ereignis erstellen, das "Maustaste gedrückt" heißt.
Dazu: Event öffnen -> Case hinzufügen -> Element auswählen -> Maustaste gedrückt.
In dieser Eventstruktur kannst du dann links "Koordinaten" abgreifen.

Das sind die Koordinaten vom Mausklick auf den 0 Punkt vom Frontpanel bezogen. Nun noch die Koordinaten vom Bedienelement abziehen (z.B.: Mittels Eigenschaftsknoten) und du hast die Koordinaten im Bild.

Gruß
Hallo!

Mal ein anderer Ansatz:

Mit dem VI "IMAQ Find Coord Sys (Rect)" kannst du ein neues Koordinatensystem in dein Bild legen. Wenn du eine relativ einfärbige Unterlage hast, ist das gefundene REechteck fürs Koordsys immer die Platine. Wenn sie nich mehr als 89° gedreht ist ist der Ursprung auch immer die selbe Ecke deiner aktuellen Platine im Bild. Aus dem Koordsys solltest du relativ einfach auf die bekannten Koordinaten umrechnen können. Dann muss der Benutzer auch den Punkt nicht manuell eingeben.

Ich hab bei meiner DA ein ähnliches Problem und die Lösung funktioniert ziemlich gut, aber ist noch nicht 100% fertig!

mfg n00b
' schrieb:Hallo!

Mal ein anderer Ansatz:

Mit dem VI "IMAQ Find Coord Sys (Rect)" kannst du ein neues Koordinatensystem in dein Bild legen. Wenn du eine relativ einfärbige Unterlage hast, ist das gefundene REechteck fürs Koordsys immer die Platine. Wenn sie nich mehr als 89° gedreht ist ist der Ursprung auch immer die selbe Ecke deiner aktuellen Platine im Bild. Aus dem Koordsys solltest du relativ einfach auf die bekannten Koordinaten umrechnen können. Dann muss der Benutzer auch den Punkt nicht manuell eingeben.

Ich hab bei meiner DA ein ähnliches Problem und die Lösung funktioniert ziemlich gut, aber ist noch nicht 100% fertig!

mfg n00b

Diese Lösung ist sicher eleganter. Mein Vorschlag ist mehr ein Workaround, weil du mit dem Event sozusagen außerhalb der Vision Struktur arbeitest.
Wür dich gar nicht als eleganter bezeichnen.
Ich hab mir nur gedacht das das da auch passt und wollt das mal sagen.
Die allgemein besser anwendbare ist wahrscheinlich deine.

mfg
<div align="left">Hallo Zusammen,

vielen Dank für die vielfältigen Antworten.

Da ich aktuell an der schriftlichen Ausarbeitung bin, werde
ich die Vorschläge erst in den nächsten Tagen umsetzten
können. Sollten dann noch Fragen offen sein, so werde ich
mich wieder an Euch wenden!

Bis dahin nochmals recht herzlichen Dank und noch
nen schönen Tag!!!

Viele Grüße
Timo</div>
<div align="left">Hallo Zusammen,

das gegebene Beispiel ist genau das was ich suche! Wenn ich
dies aber in mein bestehendes Programm einbinde, dann funktioniert
es nicht. Ich habe hierzu mal nen Screenshot erstellt. Hoffe
ihr könnt mit diesem Screenshot was anfangen und mir vielleicht
weiterhelfen!

Beim debuggen ist mir aufgefallen, dass das definierte Ereigniss nicht
zum Ausführen des im Case befindlichen Codes führt. Hab aber keine
Ahnung warum!?!?!?!

Danke schon mal!

Grüßle Timo</div>

[attachment=4666]
Seiten: 1 2
Referenz-URLs