Headtracking...
Übersicht

FWeinbehemals "ich" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich weiß das die Idee nichts neues ist aber die Umsetzung ist gut und deswegen würde ich das Auch gerne verstehen. | ||
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zuerst muß man das Bild nach 2 Punkten scannen. Hat man die gefunden, dann kann man die distanz zw. den punkten errechnen - und dann daraus die Entfernung zum Spieler... Das ist der Schlüssel für nachfolgende Berechnungen.
Hierzu muss man noch die kamera kallibrieren - d.h. eine andere webcam würde sonst die Entfernung falsch berechnen... dazu stellt man sicht z.B. 50 cm und 200cm davon und lässt vermessen - dann kann man den Rest interpolieren... Dann errechnet man die Mitte zw. den Punkten und daraus wiederum kann man Winkel oder ähnliches berechnen... geht wohl mit asin/acos/atan... |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
FWeinbehemals "ich" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja man müsste nur wissen um wie weit sich die Distanz zwischen den Punkten verringert um daran dann die Entfernung zu berechnen. | ||
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs |
E. Urbachehemals "Basicprogger" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@ich:
Unter der Voraussetzung, dass die gegeben Werte, die TheShadow genannt hat, bekannt sind, kann man z.B. die Distanz vom Benutzer zum Monitor errechnen: Code: [AUSKLAPPEN] dist(User, Display) = Sqr(2 * (dist(RSensor, User)^2 + dist(LSensor, User)^2) - dist(LSensor, RSensor)^2) / 2
Wenn diese Werte nicht bekannt sind oder dir diese Information nicht ausreicht, dann kannst du auch einen anderen Algorithmus nehmen (C++): Code: [AUSKLAPPEN] float HeadTracking(int k, float kDist)
{ //Left cam int pointX_L, pointY_L; Camera *leftCam = getCam(0); findPoint(pointX_L, pointY_L, leftCam); //Right cam int pointX_R, pointY_R; Camera *rightCam = getCam(1); findPoint(pointX_R, pointY_R, rightCam); int camMidX = getCamResX() / 2; int camMidY = getCamResY() / 2; int distMidPointX_L = pointX_L - camMidX; int distMidPointY_L = pointY_L - camMidY; int distMidPointX_R = pointX_R - camMidX; int distMidPointY_R = pointY_R - camMidY; //k = kalibrierter Wert: Abstand zum Mittelpunkt //kDist = kalibrierter Wert: Abstand zum Display //optional: distMidPointX_R und distMidPointX_L auch übergeben return (distMidPointX_R + distMidPointX_L) * (kDist / k); } Jetzt fehlt nur noch ein "Anpassungsfaktor", die Funktion "getCam" und die Bildverarbeitungsfunktion "findPoint", Freiwillige vor ![]() |
||
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik |
FWeinbehemals "ich" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Thx mal sehen ob ich damit was anfangen kann. | ||
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs |
E. Urbachehemals "Basicprogger" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nein, kannst du nicht, außer du hast 2 Webcams und kennst dich obendrein noch damit aus, wie man deren "Pixelbuffer" in C++ auslesen kann. Dann müsstest du noch eine Bildverarbeitungsfunktion schreiben, die den gegebenen Punkt auf dem Bildschirm findet und eine Kalibrierungsfunktion brauchst du auch noch.
Wenn du eine komplett weiße Wand hast und z.B. nur schwarze oder weiße Kleidung hast, dann kannst du beispielsweise einen roten Ball als Fixpunkt benutzen, denn den kann man sehr leicht erkennen, wenn die Lichtverhältnisse gut sind: Code: [AUSKLAPPEN] if(r > 160 && g < 64 && b < 64) { ... FindeZentrumImRotenBereich(); ... }
Das ist natürlich nur sehr grob geschätzt und funktioniert bei exzessivem Bildrauschen oder bei anderen Lichtverhältnissen nicht mehr, man muss die Werte experimentell bestimmen, aber ich habe keine Webcam, geschweige denn 2 ![]() |
||
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik |
FWeinbehemals "ich" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich dachte die Funktion würde das gleiche machen was die Wii auch macht also über 2 LEDs und nicht mit 2 Webcams. | ||
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs |
E. Urbachehemals "Basicprogger" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich meinte hectic's Vorgehen:
Zitat: Nun, was der Typ da im Video macht ist im groben nichts anderes als das er sich die zwei ''Kameras'' am Kopf bindet und das ganze dann rückwirkent macht.
Du kannst es auch mit einer Kamera und 2 Punkten machen. Ich würde ja gerne einen Code dazu schreiben, aber im Moment fehlt mir die Hardware, um den Algorithmus zu testen... |
||
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@hectic:
Naja, du sagst, du verstehst den Trubel um diese "Neuerfindung" nicht. Naja, es ist so wie mit dem Brotschneiden: Es gab das Brot, es gab das Messer, und jemand schlaues kam auf die Idee, mit dem Messer das Brot zu schneiden, wenn du verstehst was ich meine ![]() Also der Einsatz und die Verbindung der Technik(en) ist dann doch was neues. Ich würde mich auch mal gerne wieder in soetwas versuchen, aber weiß einer, wo man Infrarot-Filterfolie herbekommt? ^^ |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
![]() |
ChaosCoder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe grad mal n bissl gesucht und bin fündig geworden:
Zum Beispiel eBay: http://cgi.ebay.de/950nm-Infra...dZViewItem der Spaß kostet 40 Euro... Ich wünsch dir Glück ![]() |
||
Projekte: Geolaria | aNemy
Webseite: chaosspace.de |
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
kannst das auch billiger machen... einfach einen überbelichteten film verwenden... | ||
Gewinner der 6. und der 68. BlitzCodeCompo |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hier ein ähnliches Projekt von dem Typen - Whiteboard für Wiimote
http://wiiwhiteboard.cvs.sourc...hiteboard/ hier sind paar codes - es gibt sogar fertige DLL (komischerweise hat die nur keine Funktionen) damit es läuft müsst ihr das noch lesen: http://wiiwhiteboard.wiki.sourceforge.net/ Da ich kein Wiemote habe, kann ich leider nicht testen... es kostet eber 35 euro + 10 euro für led-teil |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
hab da grad was cooles gefunden: http://de.youtube.com/watch?v=...re=related
Headtracking in einem B3d-Spiel.. hab leider nix zum download oder eine homepage davon gefunden... |
||
Gewinner der 6. und der 68. BlitzCodeCompo |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
cool... bei youtube steht was OpenCV
http://de.wikipedia.org/wiki/OpenCV wusste nicht dass es gibt - und ist sogar BSD-Lizenz |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hmm.. etwas teuer der Infrarotfilter ![]() Da hört sich das überbelichtete Negativ schon besser an ![]() Von OpenCV habe ich (vor kurzem) auch schon gehört. Sollte man mal direkt ausprobieren. Wird aber scheinbar nicht mehr weiterentwickelt. :-/ |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
FWeinbehemals "ich" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Sorry das ich den Thread nochmal Hochhole aber hier ist die Seite von dem Entwickler wo auch noch sehr viel Einsatzgebiet Gezeigt werden.
http://www.cs.cmu.edu/~johnny/projects/wii/ |
||
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs |
![]() |
shure_kyuNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
das ist ja die verarschung pur
der link wurde 1 mal von mir und dann noch von the_shadow gepostet wie mir scheint und nun holst du den thread wieder hoch um genau das gleiche zu tun ? ![]() |
||
_______//¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\________ ◄Blitz 3D/MAX • PC - 2x 3.16Ghz, 4GB-Ram, ATi HD 4890 1024MB• win7 • site$ Rush2Play ° My-Htc.de► ¯¯¯¯¯¯¯\__________________________________________________________________________//¯¯¯¯¯¯¯¯ BBP-RSS FEED Halt dich auf dem laufenden! (C)Shure_kyu |
FWeinbehemals "ich" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also ich sehe den Link nicht einmal hier in dem Thread ?
mfg ich |
||
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs |
![]() |
shure_kyuNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
https://www.blitzforum.de/foru...282#280282
musst du gucken ![]() https://www.blitzforum.de/foru...282#280282 ![]() |
||
_______//¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\________ ◄Blitz 3D/MAX • PC - 2x 3.16Ghz, 4GB-Ram, ATi HD 4890 1024MB• win7 • site$ Rush2Play ° My-Htc.de► ¯¯¯¯¯¯¯\__________________________________________________________________________//¯¯¯¯¯¯¯¯ BBP-RSS FEED Halt dich auf dem laufenden! (C)Shure_kyu |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Weil ihr alle so ''freakig'' nach Tracking und der gleichen seid: http://www.isnichwahr.de/r1735...-teil.html | ||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group