AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Gesture - ein lernfähiges Mausgesten-Erkennungssystem
Thema durchsuchen
Ansicht
Themen-Optionen

Gesture - ein lernfähiges Mausgesten-Erkennungssystem

Ein Thema von OrallY · begonnen am 28. Jul 2004 · letzter Beitrag vom 2. Aug 2004
Antwort Antwort
Seite 2 von 4     12 34      
Benutzerbild von OrallY
OrallY
Registriert seit: 29. Apr 2003
Gesture (Pre-Alpha Version)

So, nachdem durch einen Systemabsturtz ne Menge Daten verloren gingen, habe ich mich hingesetzt und Gesture noch einmal geschrieben. Und nun ist es wieder auf dem Entwicklungsstand wie das alte.

Was ist Gesture?
Gesture ist ein lernfähiges Mausgesten-Erkennungssystem, was nichts anderes heißt, als dass man dem Programm Gesten beibringen kann, die mit der Maus einfach auf den Bildschirm gezeichnet werden.

Wie benutze ich Gesture?
Wenn das Programm gestartet wird, nistet es sich im SysTray ein. Nun kann mit gedrückter rechter Maustaste irgendwo auf dem Bildschirm eine Geste gemalt werden. Nach loslassen der Taste verschwindet die Geste sofort wieder. Im Kontextmenü des TrayIcons lässt sich mit "Geste speichern" die aktuell gezeichnete Geste speichern. Von nun an sollte Gesture, wenn diese Geste nocheinmal gezeichnet werden, diese auch erkennen (In diesem Falle erscheint die Meldung: "Gesture Found: {Gesten-Index}". Kann keine Geste erkannt, werden erscheint die Meldung: "No Gesture Found." (das ist auch der Fall, wenn noch keine Geste gespeichert wurde).

Was ich mit Gesture noch vorhabe:
Durch die Mausgesten sollen Aktionen ausgeführt werden (wie z.B: öffne Mail-Client etc.). Dabei können Gesten global gelten oder nur auf bestimmte Anwendungen beschränkt werden. Die mögliche Auswahl der Aktion soll durch ein Plugin-System erweiterbar sein. Die Aktionszuweisung soll über ein seperates Programm erfolgen, was ich wahrscheinlich mit Hilfe der VCL schreiben werde.
Auch gefallen würde mir die Aktionen über eine Scriptsprache zu realisieren, allerdings wüsste ich noch nicht, welche dafür in Frage käme... .



Ich habe versucht in den Kommentare so viel zu erklären, wie möglich. Wenn etwas nicht nachvollziehbar ist, einfach nachfragen.

Also, wer Lust hat, kann sich in den Code einarbeiten (wobei ich natürlich helfe, so gut ich kann) und mitprogrammieren, ist ja schließlich OpenSource . Wenn das Programm ersteinmal soweit ist, dass es auch benutzbar ist, werde ich es unter Sourceforge veröffentlichen (http://gesturerec.sourceforge.net).

aktuelle Version:
Gesture 0.0.2 (Pre-Alpha-Version)
Änderungen: Nur Bugfixes
Kompilat: http://prdownloads.sourceforge.net/g...a.zip?download [26KB]
Source: http://prdownloads.sourceforge.net/g...a.zip?download [23KB]

[Edit: 15. Mai 2005]
Hinweis:
Ich wurde vor Kurzem gebeten, eine neue Version von Gesture hier vorzustellen. Da allerdings aus Zeitmangel die Entwicklung nur in periodischen Intervalen vorangeht, wird es wohl noch eine Weile dauern, bis ich die nächste Pre-Alpha veröffentliche.
Bis dahin kann der Interessierte den Fortschritt im CVS Repository verfolgen:
http://cvs.sourceforge.net/viewcvs.py/gesturerec/
.oO'rallY
Linux is like a tipi: no gates, no windows and a gnu-eating apache inside...
 
HW764
 
#11
  Alt 28. Jul 2004, 17:15
Gleicher Fehler kommt
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

 
Delphi 2006 Professional
 
#12
  Alt 28. Jul 2004, 17:17
Dito.
Michael
  Mit Zitat antworten Zitat
Benutzerbild von OrallY
OrallY
 
#13
  Alt 28. Jul 2004, 17:22
So, jetzt aber. Tut mir schrecklich leid .
  Mit Zitat antworten Zitat
sCrAPt
 
#14
  Alt 28. Jul 2004, 17:23
wie funktioniert das jetzt?

achso... hab die falsche zip gestartet... sorry...
  Mit Zitat antworten Zitat
Benutzerbild von S2B
S2B
 
#15
  Alt 28. Jul 2004, 17:25
So, tut mir schrecklich Leid für dich!
Code:
---------------------------
Gesture: Gesture.exe - Fehler in Anwendung
---------------------------
Die Ausnahme "unknown software exception" (0xc000008e) ist in der Anwendung an der Stelle 0x004098eb aufgetreten.


Klicken Sie auf "OK", um das Programm zu beenden.
Klicken Sie auf "Abbrechen", um das Programm zu debuggen.
---------------------------
OK  Abbrechen  
---------------------------
Nach dem Loslassen der Maustaste!

System: WinXP mit SP1
Simon Praetorius
  Mit Zitat antworten Zitat
sCrAPt
 
#16
  Alt 28. Jul 2004, 17:26
bei mir funktioniert es?! ich hab auch XP+SP1
  Mit Zitat antworten Zitat
Benutzerbild von OrallY
OrallY
 
#17
  Alt 28. Jul 2004, 17:41
Ok, eine kurze Erläuterung der Funktionsweise:

Wenn eine Geste auf den Bildschirm gezeichnet wird, werden erstmal die ganzen Koordinaten gespeichert. Da diese Punkte unregelmäßige Abstände zueinander haben, werden die Abstände ersteinmal mit InterpolateMouseway vereinheitlicht. Das bedeutet Punkte die zu dicht zusammenliegen werden aufgelockert und bei zu hohem Abstand neue hinzuberechnet. So, jetzt ist ersteinmal die Grundlage geschaffen.
Jetzt geht es weiter, indem die Geste auf Richtungswechsel überprüft wird (das geschieht mit GetImportantPoints). Der Punkt, wo der Richtungswechsel auftritt wird gespeichert. Sind alle Richtungswechsel erfasst werden der Geste mit FillGesture noch weitere Punkte hinzugefügt. Die Geste wird also auf auf die in GESTUREIPC angegebene Anzahl reduziert.
Wenn nun zwei Gesten miteinander verglichen werden, geschieht das in zwei verschiedenen Verfahren(CompareGestures:

Verfahren 1
Code:
P = Punkt (ImportantPoint)                            
                                                         
                   o P3                                   
                  /                                       
                 / . ------------- dieser Winkel        
  P1 o----------o- - - - - #                             
                P2
Hier wird die Abweichung festgestellt, die Strecke P2-P3 von P1-P2 macht. Je nachdem in welche Richtung die Abweichung geschieht ist die Gradzahl negativ oder positiv.

Verfahren 2

Code:
                        #
                        |           
                        |--- gedachte Linie
                      . |                                 
   dieser Winkel ---: o P1                               
                      ./                                   
                      /                                               
                     /                                     
                 P2 o
Hier wird der Winkel zu einer gedachten Linie, die paralell zur Y-Achse verläuft ermittelt.


Der Algorithmus geht Punkt für Punkt beide Gesten durch und vergleicht sie miteinander. Sind am Schluss nur wenig Abweichungen zwischen den Gesten ermittelt worden, gilt die Geste als erkannt. Sind es zuviele, dann nicht.


Ist das verständlich?

Ich habe zur Entwicklung ein Programm geschrieben, dass das ganze ein wenig grafisch aufbereitet (nicht zu viel erwarten: http://www.mokasin.de/projects/Gesture/GestureDT.zip
  Mit Zitat antworten Zitat
Benutzerbild von OrallY
OrallY
 
#18
  Alt 28. Jul 2004, 17:43
Zitat von S2B:
So, tut mir schrecklich Leid für dich!
Code:
---------------------------
Gesture: Gesture.exe - Fehler in Anwendung
---------------------------
Die Ausnahme "unknown software exception" (0xc000008e) ist in der Anwendung an der Stelle 0x004098eb aufgetreten.


Klicken Sie auf "OK", um das Programm zu beenden.
Klicken Sie auf "Abbrechen", um das Programm zu debuggen.
---------------------------
OK  Abbrechen  
---------------------------
Nach dem Loslassen der Maustaste!

System: WinXP mit SP1
Passiert das bei dir bei jedem Mal?
Wenn nein, dann ist das ein Bug, denn ich noch lösen muss. Anscheindend wird irgendwo im Code eine fehlerhafte Berrechnung durchgeführt.
  Mit Zitat antworten Zitat
sCrAPt
 
#19
  Alt 28. Jul 2004, 18:09
so ein programm hab ich schonmal gehabt, nur das es nur 2 Z-Formen erkennen konnte welche entweder alle fenster minimiert oder maximiert hat
  Mit Zitat antworten Zitat
Benutzerbild von OrallY
OrallY
 
#20
  Alt 28. Jul 2004, 18:13
Wie funktioniert bei euch die Gestenerkennung?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz