0

J'essaie de configurer motiondetection en utilisant le framework AForge.NET. J'utilise les informations fournies sur la page this.Comment configurer la détection de mouvement à l'aide d'AForge?

J'ai configuré un flux vidéo DirectShow qui alimente une partie de mon bureau via un flux. Je peux choisir ce flux dans le projet de vidéoprojecteur fourni avec AForge. (Et je vois mon bureau à travers le lecteur). Toutefois, lorsque je cours le code ci-dessous, je reçois une exception NullReferenceException. Qu'est-ce que je rate?

// New frame received by the player 
    private void videoSourcePlayer_NewFrame(object sender, ref Bitmap image) 
    { 
     if (this.detector.ProcessFrame(image) > 0.02) 
     { 
      Console.WriteLine("Motion"); 
     } 
     else 
     { 
      Console.WriteLine("No motion"); 
     } 
    } 

Le detector est initialisé comme variable de classe privée lorsqu'un est choisi flux vidéo.

private MotionDetector detector; 
    private BlobCountingObjectsProcessing motionProcessor; 

    // Open video source 
    private void OpenVideoSource(IVideoSource source) 
    { 
     BlobCountingObjectsProcessing motionProcessor = new BlobCountingObjectsProcessing(); 

     MotionDetector detector = new MotionDetector(
      new SimpleBackgroundModelingDetector(), 
      motionProcessor); 
    } 

Répondre

1

Jetez un oeil à la BlobCountingObjectsProcessing motionProcessor, il semble que vous avez déclaré deux fois la variable, une fois et une fois non initialisé initialisés.

Une étendue de méthode externe et une étendue de méthode interne.

Je pense que c'est de là que provient votre NullReferenceException.

+0

correct :). Je suis habitué à VB, erreur stupide haha – Ropstah