2017-08-03 3 views
0

Ich versuche ein einfaches Bewegungserkennungsprogramm mit dem AForge.net Framework zu bekommen. Auf der AForge Webseite ist ein Beispiel für ein solches Programm, aber es ist recht vage:Wie füge ich Rahmen in das Bewegungsmelder-Objekt AForge.net ein?

// create motion detector 
MotionDetector detector = new MotionDetector(
    new SimpleBackgroundModelingDetector(), 
    new MotionAreaHighlighting()); 

// continuously feed video frames to motion detector 
while (...) 
{ 
    // process new video frame and check motion level 
    if (detector.ProcessFrame(videoFrame) > 0.02) 
    { 
     // ring alarm or do something else 
    } 
} 

ich etwas Hilfe mit der Bedingung für die while-Schleife müssen, da ich keine Lösung dafür, wie zu füttern Video-Frames finden in das MotionDetector-Objekt.

Danke.

Antwort

0

Sie möchten das DirectShow VideoInputDevice von AForge nutzen. Und statt einer While-Schleife haben Sie ein NewFrame-Event, um den Bewegungsmelder zu steuern.

Zuerst werden Sie die Verweise benötigen:

using AForge.Video.DirectShow; 
using AForge.Video; 
using AForge.Vision.Motion; 
using System.Drawing; 

Weiter Sie Ihr Aufnahmegerät erhalten müssen z.B. Ihre Webcam und fügen Sie dem NEWFRAME Ereignis für das Gerät einen neuen Rahmen-Ereignishandler:

Cameras = new FilterInfoCollection(FilterCategory.VideoInputDevice); 
VideoCaptureDevice Camera = new VideoCaptureDevice(Cameras[0].MonikerString); 
Camera.NewFrame += new NewFrameEventHandler(ProcessNewFrame); 

Jetzt können Sie die NewFrameEventHandler implementieren aber Sie wählen:

private void ProcessNewFrame(object sender, NewFrameEventArgs eventArgs) 
{ 
    Bitmap frame = (Bitmap) eventArgs.Frame.Clone(); 
    if (detector.ProcessFrame(frame) > 0.02) 
    { 
     // ring alarm or do somethng else 
    } 
} 
+0

Lassen Sie mich wissen, wenn Sie weitere Hilfe benötigen. Ich habe gerade ein Motion-Tracker-Projekt auf AForge-Basis selbst abgeschlossen. – Iridium237

Verwandte Themen