Hi liebe Leute,
zuerst:
Meine Webcam macht wenig FPS, deswegen gibt es kaum andere Möglichkeiten als den Mauszeiger zu Bewegen.
Außerdem konnte ich auch nur für meine Webcam testen.
Ich hätte gerne Visual C++ benutzt um ASm einzubauen, da hab ich aber nicht geschafft das Projekt richtig zu konfigurieren, deswegen nun wieder GNU GCC für C++ mit Coed::Blocks ohne ASM.
Dazu kommt, wenn ich selber compilen wollt, braucht ihr eine richtige Code::Blockseinstellung und überhaupt erstmal die OpenCV-Lib
so nun zum Wichtigen:
Ich freu mich euch die Webcamsteuerung 2.0 vorzustellen. Früher gab es mit VFW von campweb gepostet die 9-Kästchen Version, bei der ein roter Punkt im Bild gesucht wurde. Dann wurde einfach der Punkt zu einem der 9 Kästchen zugeteilt und das wars. Die Nachteile sind klar: der Hintergrund darf kein rot haben, aber man muss einen roten Gegenstand in der Hand halten. Das ist aber jetzt Schnee von gestern.
Mit meiner Steuerung gibt es weder Kästchen noch einzigartigfarbige Gegenstände
Ich hab mein Programm so programmiert, dass man gemütlich mit der Hand oder sonstigem die Maus steuern kann. Dafür wird zu Anfang festgestellt ob die Hand von links oder rechts kommt, also ob die Webcam rehts oder links neben euch steht. Dann werden alle geänderten Pixel "detektiert" und der am weitesten von euch entfernte Punkt gilt als Position. Um derbildrauschenden Webcam meinerseits vorzubeugen kam der liebe Gauß ins Spiel. Wenn ihr eine noch schlimmere Webcam habt als Ich und das Programm spinnt, sagts mir, vielleicht kann ich noch etwas ändern. Außerdem nicht gut für das Programm ist, wenn sich die Webcam bewegt und das ganze Bild geändert wird, allerdings, sobald sich das Bild wieder beruhigt funktioniert das Programm auch wieder wunderbar.
Wenn ihr mal meine Testansicht sehen wollt, probiert im Sourcecode mit ausgeklammertem "#define FINAL" oder einfach die "Webcam_dev.exe".
Ansonsten die normale Ansicht mit "Webcam_bewegung.exe". In der normalen Version hängt der grüne Punkt ein Bild hinterher, weil das vorherige mit dem neuen Bild verleiche.
Sinnvollerweise ist in der Nähe des Bildrandes auch der virtuelle Bildschirmrand (etwas weiter Innen, weil man den grünen Punkt nie nach ganz außen kriegen wird)
So ich hoffe es ist alles gut erklärt und vollständig. Das Programm soltle wunderbar funktionieren, wie genau man damit steuern kann ist fraglich, aber nach meinen Tests ging es schon relativ gut, mehr ist aus meiner Webcam nicht rauszuholen
Nun ans Eingemachte:
Alles was man braucht ist in der zip, ich hoffe ihr mögt es
mfg
PS:
Wenn am Anfang nichts passiert und kein grüner Punkt zu sehen ist, obwohl eure Hand mittem im Bild ist. Dann nehmt die Hand nochmal aus dem Bild und bewegt sie langsam wieder ins Bild, dann sollte der grüne Punkt erscheinen und alles wie in Butter laufen.
PS 2:
Dank OpenCV kann man die GUI leider nur schließen, indem man im aktiven Zustand des Fensters ESC drückt
PS 3:
Die zip passt nicht in den Anhang, daher hier:
http://www.solidfiles.com/d/cf776bfbcd/