Laden...

Video Motion Detection

Erstellt von egrath vor 15 Jahren Letzter Beitrag vor 15 Jahren 6.370 Views
egrath Themenstarter:in
871 Beiträge seit 2005
vor 15 Jahren
Video Motion Detection

Hallo,

für ein Projekt von mir habe ich eine Komponente benötigt welche Bewegungen in einem Video erkennen kann. Das Ergebnis findet Ihr hier 😉

Das ganze basiert auf einer modifizierten Video4Mono Library welche ich schon vor einigen Monaten mal veröffentlicht habe (ist im Source hier inkludiert). Ich verwende einen relativ simplen Algorithmus zur erkennung der Bewegung:* Das derzeitige Bild wird in ein Raster unterteilt

  • Die einzelnen Blöcke des Rasters werden mit dem vorherigen Bild verglichen
  • Für jeden Pixel gibt es einen Abweichungsschwellwert. Pro Block einen Threshold wieviele Abweichungen es maximal geben darf

Für jedes Bild des Videos wird ein Array mit Rectangles zurück gegeben in welchem Bewegung festgestellt wurde. Sieht dann so aus wie am beiliegenden Screenshot.

Grüsse,
Egon

egrath Themenstarter:in
871 Beiträge seit 2005
vor 15 Jahren
S
119 Beiträge seit 2008
vor 15 Jahren

Geile Komponente 😉

Werd gleich mal damit herum spielen

"2 Dinge sind unendlich die Dummheit der Menschen und das Universum, aber beim Universum bin ich mir noch nicht so ganz sicher."

  • Albert Einstein
49.485 Beiträge seit 2005
vor 15 Jahren

Hallo egrath,

wobei wohl auch Helligkeitsänderungen (z.B. wenn man abends das Licht einschaltet) als Bewegung erkannt werden. Ist nicht schlimm, und ja auch wohl prinzipbedingt. Ich wollte es einfach nur als Zusatzinfo anmerken.

herbivore

458 Beiträge seit 2007
vor 15 Jahren

wobei wohl auch Helligkeitsänderungen (z.B. wenn man abends das Licht einschaltet) als Bewegung erkannt werden.

Was durchaus gewuenscht sein kann, z.B. bei Ueberwachungskameras.

be the hammer, not the nail!

Gelöschter Account
vor 15 Jahren

gibt es sowas auch für .net?

egrath Themenstarter:in
871 Beiträge seit 2005
vor 15 Jahren

gibt es sowas auch für .net?

Hallo JAck30lena,

die Komponente hier gibts eigentlich (von mir) nur für Mono, da ich auf die Video4Linux API zurückgreife um an die Bilder der Kamera zu kommen.

Vor einiger Zeit hab ich aber mal einen Wrapper für Video4Windows veröffentlicht (liegt hier irgendwo im Forum unter den Projekten). Vom Prinzip her kannst Du den Algorithmus zur Motion Detection adaptieren (MotionDetection.cs). Da ich ohnehin beinahe nur mit den Rohdaten (RGB) der einzelnen Bilder arbeite ist es ein relativ leichtes diese nicht mehr von einem Gdk.Pixbuf sonder z.b. einem System.Drawing.Image oder System.Drawing.Bitmap zu nehmen.

@Herbivore:
Ja das mit der Helligkeit ist zur Zeit noch eines meiner größeren Probleme. Ich tüftle schon seit gestern rum wie ich Helligkeitsänderungen ignorieren kann - mit mehr oder weniger erfolg zur Zeit. Ich denke dass ich den gesamten Algorithmus zur erkennung von Bewegung anders implementieren werde.

Grüsse,
Egon