Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Video Motion Detection
egrath
myCSharp.de - Member

Avatar #avatar-2119.jpg


Dabei seit:
Beiträge: 937
Herkunft: Österreich / Steyr

Themenstarter:

Video Motion Detection

beantworten | zitieren | melden

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
Attachments
private Nachricht | Beiträge des Benutzers
egrath
myCSharp.de - Member

Avatar #avatar-2119.jpg


Dabei seit:
Beiträge: 937
Herkunft: Österreich / Steyr

Themenstarter:

beantworten | zitieren | melden

... und der Source
Attachments
private Nachricht | Beiträge des Benutzers
Sweet
myCSharp.de - Member



Dabei seit:
Beiträge: 119
Herkunft: Graz/Österreich

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
aequitas
myCSharp.de - Member

Avatar #avatar-3079.png


Dabei seit:
Beiträge: 517
Herkunft: Unterfranken

beantworten | zitieren | melden

Zitat von herbivore
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!
private Nachricht | Beiträge des Benutzers
Gelöschter Benutzer

beantworten | zitieren | melden

gibt es sowas auch für .net?
egrath
myCSharp.de - Member

Avatar #avatar-2119.jpg


Dabei seit:
Beiträge: 937
Herkunft: Österreich / Steyr

Themenstarter:

beantworten | zitieren | melden

Zitat von JAck30lena
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
private Nachricht | Beiträge des Benutzers