VB.Net Koordinatenberechnung

knoddelpusch

Level-1
Beiträge
39
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich habe in einer Picturebox ein Bild von einer Webcam welche Kreisförmige Objekte aufnimmt.
Dieses Bild wandle ich dann in ein Schwarz Weiß Bild um und suche mir die Mittelpunkte von den Kreisen.
Das Funktioniert auch soweit.
Nun will ich aus den Pixeln die X und Y Koordinaten berechnen. Mein Bild von der Webcam ist 640*480 Pixel.
Der Null Punkt von den Koordinaten soll in der Mitte des Bildes sein. Mein Fläche wo das Kreisförmige Objekte drauf liegen ist 49*84 cm groß.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
wenn ich jetzt ein Pixel in der Mitte des Rundenobjektes gefunden habe zum Beispiel Pixel 250, 120.
Möchte ich das jetzt Umrechnung damit ich das Pixel bzw. den Punkt in X und Y Koordinaten Umrechne.
Die Kamera hat eine Auflösung von 640*480 Pixel.
Und das Koordinatensystem ist 84*49cm groß.
Wie rechne ich das jetzt um?
Wird wahrscheinlich ganz simpel sein, steh aber gerade voll auf dem Schlauch.
 
In X-Richtung wäre 1 Pixel dann 1,3125 mm (840mm / 640 Px) und in Y-Richtung 1,0208 mm (490mm / 480 Px)
Du möchtest ja den Nullpunkt in der Mitte des Bildes haben. Ich gehe mal von einem normalen Koordinatensystem aus, d.h. x wird nach rechts positiv und y noch oben
Dann musst du von deinem Ergebnis in X noch die Hälfte von Bild abziehen (-420mm) und in Y dein Ergebnis von 245mm abziehen.
Beispiel x:250 ; y:120
==> X:-91,875mm ; Y: 122,5mm

So würde ich das machen.
 
Hallo,
danke für die Schnelle Hilfe.
Das mit der Pixel in mm Umrechnung ist ja soweit klar.
Ich versteh im moment nur noch nicht genau wie man auf die X:-91,875mm oder Y: 122,5mm kommt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nun will ich aus den Pixeln die X und Y Koordinaten berechnen. Mein Bild von der Webcam ist 640*480 Pixel.
Der Null Punkt von den Koordinaten soll in der Mitte des Bildes sein. Mein Fläche wo das Kreisförmige Objekte drauf liegen ist 49*84 cm groß.

Schaut die Kamera schräg auf das die Fläche oder woher kommt
die Abweichung zwischen den Seitenverhältnissen 640x480 (0,75)
und 84x49 (0,5833)?

Bezüglich des Koordinatensystems musst Du dich entscheiden,
ob der Nullpunkt 0/0 zentral in oder Bildmitte sein soll, oder
links unten – das sind die beiden gängigen Varianten.

https://www.google.de/search?q=koor...mZqv7LAhVEYpoKHZ04BhQQsAQIIw&biw=1379&bih=890
 
Die Kamera schaut mittig von oben auf das Spielfeld.
Der Nullpunkt soll in der Bildmitte sein.
Ich sehe mit der Kamera mehr wie ich benötige.
Es ist auch kein Quadratisches Spielfeld sonder ein Rechteckiges.
 
Wenn die Kamera mehr sieht als das Spielfeld, dann musst Du die Bilderfassung ja erst kalibrieren. Wie soll man das sonst umrechnen können? Wie viel mehr sieht die Kamera? Doppelt so viel, nur ein bisschen mehr?
Mit dieser Skalierung gehst Du dann in die zuvor genannten Umrechnungen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Kamera ist schon ausgerichtet das sie genau mittig über dem Spielfeld hängt.
Das Bild der Kamera ist in y Richtung noch ein 1 cm zu groß und in x Richtung 5 cm zu groß.

Das mit der kalibrierung ist ja so weit klar und das mit der Pixel in mm Umrechnung auch, also das ich weiß wei lang ein Pixel ist.

X-Richtung 1,3125 mm (840mm / 640 Px)
Y-Richtung 1,0208 mm (490mm / 480 Px)

Ich versteh jetzt nur nicht wie ich genau wie ich dann genau auf die X und Y-Koordinaten komme.

Beispiel x:250 ; y:120
==> X:-91,875mm ; Y: 122,5mm
Ich komm da immer auf was anderes egal wie ich das Rechne.

Weil ich ja den Nullpunkt in der Mitte haben weil ziehe ich von den 250 noch 420 ab und nehme das mal die Pixel mm?
Also würde das für X Bedeuten
250mm - 420mm = -170mm
X = -170mm * 1,3125mm = -223,125mm

==> X:-91,875mm ?
 
Naja ... Ronnie.B hat in seinem Beitrag#4 die Kenntnisse des sogenannten Dreisatzes vorausgesetzt ... 8) ich will zu der Gegenfrage dazu jetzt mal nicht weiter etwas sagen ...

Jedenfalls ... die erste Zeile des genannten Beitrages (von Ronnie) beschreibt, wie er die Pixel in das Koordinatensystem umrechnet. Jetzt hat er natürlich vergessen zu schreiben, dass er den Mittelpunkt des Kamerabildes in die Hälfte des Real-Koordinatensystems gelegt hat (also Länge (X) von 840 mm / 2 = 420 mm und Höhe (Y) von 490 mm / 2 = 245 mm). Dieser Teil ist allerdings nicht zwingend wichtig. Deine Kamera hat ihren Koordinaten-Ursprung (also der Punkt, wo X=0 und Y=0 sind) in der Regel oben links.
Wichtiger für dich sind die ermittelten Verstärkungswerte (also 1,3125 mm/Pixel in X-Richtung bzw. 1,0208 mm/Pixel in Y-Richtung). Wemnn du nun deine Pixel-Koordinaten in mm umrechnen willst dann mußt du deinen X-Wert mit der X-Verstärkung multiplizieren bzw. deinen Y-Wert mit der Y-Verstärkung multiplizieren. Wenn du das dann richtig hinschreibst (also auch die Maßeinheiten) dann kürzen sich die Pixel weg und es bleiben dann mm (über dem Bruchstrich) über.
Warum du allerdings wenn du kein verzerrendes Objektiv verwendest und nicht mit der Kamera schräg auf das Objekt schaust für X und Y unterschiedliche Verstärkungswerte bekommst ist mir unklar. Da machst du noch irgend etwas an irgendeiner Stelle falsch - die Werte sollten identisch sein.

Gruß
Larry
 
Zuletzt bearbeitet:
Zurück
Oben