Hi @ all,
ich würde gerne mit Python (vorzugsweise 3.x aber auch 2.6) eine Bewegungserkennung basierend auf einem Webcamstream / auf Webcam-Bildern realisieren.
D.h. im Programm muss folgendes implementiert werden:
- Abgreifen des Webcamstreams
- Analyse dieses Streams um motion detection durchzuführen (z.B. Temporal Differencing, Backgroundsubstraction)
- Bewegungserkennung ausgeben (in einfacher GUI)
Hat jemand schon so etwas gemacht?
Es würde sich auf jeden Fall empfehlen OpenCV und PIL zu benutzen. Aber wie greife ich damit den Stream meiner Webcam ab und untersuche in Pixel für Pixel?
Würde mich über Hilfe echt freuen!
Bewegungserkennung mit Webcam
zwar noch nichts gemacht, aber rein logisch brauchst du nur 2 Bilder und machst daraus ein Diff und dann siehst du was sich verändert, sprich, sich bewegt hat
gruß, SigMA
gruß, SigMA
Leichtdio.de - Das Kreativ-Blog
http://www.leichtdio.de
http://www.leichtdio.de
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Das setzt vorraus, dass die Bilder nicht "rauschen", was ich für ziemlich unwarscheinlich halte.SigMA hat geschrieben:zwar noch nichts gemacht, aber rein logisch brauchst du nur 2 Bilder und machst daraus ein Diff und dann siehst du was sich verändert, sprich, sich bewegt hat
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
ja genau das ist das Temporal-Differencing Verfahren.
Ich hab fast genau dasselbe schonmal mit Java programmiert. Man nimmt beim TD-Verfahren die RGB-Werte der Einzelnen Pixel und vergleicht/bildet Differenz. Und dann hat man (wegen des Rauschens) eine Threshold um da eine "richtige" Bewegung rauszufiltern.
Nur ich hab eig. Probleme mit der praktischen Umsetzung. Ich weiß nicht wie eine Cam ansprechen kann und das bild zum Beispiel als Array von Pixeln analysieren kann um die Differenz rauszurechnen.
Ich hab fast genau dasselbe schonmal mit Java programmiert. Man nimmt beim TD-Verfahren die RGB-Werte der Einzelnen Pixel und vergleicht/bildet Differenz. Und dann hat man (wegen des Rauschens) eine Threshold um da eine "richtige" Bewegung rauszufiltern.
Nur ich hab eig. Probleme mit der praktischen Umsetzung. Ich weiß nicht wie eine Cam ansprechen kann und das bild zum Beispiel als Array von Pixeln analysieren kann um die Differenz rauszurechnen.
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Hm... naja, da mußte wohl oder übel gucken, welche Libs es da gibt! Letztlich mußt Du ja höchstwahrscheinlich eine Abstraktionsschicht benutzen.Bonzo1993 hat geschrieben: Ich weiß nicht wie eine Cam ansprechen kann...
Das folgende Projekt nutzt da wohl vlc als backend (auch wenn ich keinen Plan habe, wie das gehen soll):
http://kde-apps.org/content/show.php/Ka ... ent=111750
Vielleicht hilft Dir da PIL? Also zumindest, um ein Bild in eine Python-Datenstruktur zu bekommen. Das Analysieren musste da sicherlich selber machen.und das bild zum Beispiel als Array von Pixeln analysieren kann um die Differenz rauszurechnen.
Es ist schon unglaublich wie schnell man bei google sowas findet
Suchwort: "python webcam"
http://webcamspy.sourceforge.net/
http://technobabbler.com/?p=22
http://videocapture.sourceforge.net/
http://code.google.com/p/ctypes-opencv/
gruß, SigMA
Suchwort: "python webcam"
http://webcamspy.sourceforge.net/
http://technobabbler.com/?p=22
http://videocapture.sourceforge.net/
http://code.google.com/p/ctypes-opencv/
gruß, SigMA
Leichtdio.de - Das Kreativ-Blog
http://www.leichtdio.de
http://www.leichtdio.de
thx (ich benutze kein google nur Yahoo! )
also ich hab jetzt bereits das meiste realisiert und die bewegungserkennung funktioniert auch super! (Sogar mit einer schlechten Webcam überhaupt kein Problem)
Ich bin jetzt grade an der GUI dran und hab da ein kleines Problem:
Wie bekomme ich es mit Tkinter hin, dass in der Endlosschleife zur Bewegungserkennenung jedes Frame das abgegriffen wird auch gleichzeit in der GUI ausgegeben wird? Oder kann ich direkt das Video der Webcam abgreifen? Oder mache ich das am besten mit einer Canvas in die ich schnell Bilder zeichne?
Danke schonmal für eure Antworten!
also ich hab jetzt bereits das meiste realisiert und die bewegungserkennung funktioniert auch super! (Sogar mit einer schlechten Webcam überhaupt kein Problem)
Ich bin jetzt grade an der GUI dran und hab da ein kleines Problem:
Wie bekomme ich es mit Tkinter hin, dass in der Endlosschleife zur Bewegungserkennenung jedes Frame das abgegriffen wird auch gleichzeit in der GUI ausgegeben wird? Oder kann ich direkt das Video der Webcam abgreifen? Oder mache ich das am besten mit einer Canvas in die ich schnell Bilder zeichne?
Danke schonmal für eure Antworten!
Hey!
Du kannst dir auch pymt anschauen, das hat auch ein paar Funktionen zur Erkennung von Bewegungen und Gesten eingebaut.
Gruß, Christopher
Du kannst dir auch pymt anschauen, das hat auch ein paar Funktionen zur Erkennung von Bewegungen und Gesten eingebaut.
Gruß, Christopher