Touchscreen Kalibrier Algorithmus



  • Hallo zusammen,

    ich muss einen Kalibrieralgorithmus für ein Tochscreen programmieren. Gibt es dafür einen Standart Algoritmus?

    Die Aufgabenstellung lautet:

    Sie haben einen Bildschirm mit der Auflösung 640x480 Pixel. Aufgesetzt auf diesen Bildschirm ist ein Touch-Screen. Beschreiben sie einen Algorithmus, wie dieser Touch-Screen kalibriert werden kann und eine Formel, um mit Hilfe der Kalibrierdaten von einem Touch-Klick auf die korrekte Bildschirmkoordinate zu kommen.

    Es ist nicht davon auszugehen das die Kanten des Touchscreen Parallel zu den Display Kanten sind. Er kann also auch verdreht darauf liegen.

    Die Anzahl der Kalibrierpunkte sollen mindestens 3 (z.B. rechte obere Ecke, rechte untere Ecke, linke untere Ecke) oder mehr sein.

    Wer kann mir bei der Aufgabenstellung helfen?

    Gruß
    spacehelix



  • du läst ein punkt anzeigen bei p(1|1) den pixel ganz links oben, wenn du jetzt vom touchscreen ein wert zurückbekommst der t(5|7) ist weiss du schon mal das du von den werten des touchscreen immer -4 in von der x kordinate und -6 von der y kordinate abzeihen musst
    alles klar?
    das würde jetzt reichen wenn touchscreen und display die gleiche auflösung hätten

    darauf würde ich mich nicht verlassen, deswegen zeigst du ein punkt an p( 1 | 640 ) an und wenn der touchscreen dir t( 1 | 1280 ) zurückgibt muss du nur etwas mathe machen und sehen wie viel y_display y_touchscreen entsprechen

    das gleiche noch mal für x



  • @Gerard:
    Das reicht noch nicht. Der Touchscreen kann ja auch verdreht auf dem Dislay liegen.

    Du brauchst im Prinzip nur 3 Referenzpunkte. Dadurch ist das Koordinatensystem eindeutig festgelegt und Du mußt immer nur noch den Basiswechsel durchführen. Du kannst ja davon ausgehen, daß es sich um eine affine Transformation handelt:

    x' = A*x+b mit A ne 2x2-Matrix und b ein 2d-Vektor. Das sind 6 Freiheitsgrade. Jedes Punktepaar, von dem Du beide Koordinaten kennst gibt Dir zwei Gleichungen, also benötigst Du drei Punkte, die nicht auf einer Geraden liegen. Mit denen erhältst Du dann ein LGS für A und b, das mußt Du nur noch lösen und schon kannst Du beliebig zwischen den Koordinatensystemen wechseln.

    MfG jester



  • Hi,

    ich hab ne schöne Beschreibung und auch ein Bsp. Code auf folgender Seite gefunden. http://www.embedded.com/story/OEG20020529S0046

    Trotzdem, vielen Dank für eure Antworten.

    Gruß
    spacehelix


Anmelden zum Antworten