Pregunta

Estoy tratando de motiondetection configuración utilizando el marco AForge.NET. Estoy usando la información proporcionada en rel="nofollow esta página .

he configurar un videostream DirectShow que alimenta una parte de mi escritorio a través de un arroyo. Puedo elegir esta corriente en el proyecto de vídeo de muestra que se proporciona con AForge. (Y veo a mi escritorio a través del reproductor).

Sin embargo, cuando ejecuto el código de abajo recibo una NullReferenceException. ¿Qué me falta?

    // 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");
        }
    }

El detector se inicializa como variable de clase privada cuando se elige un videostream.

    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);
    }
¿Fue útil?

Solución

Tener un vistazo a la BlobCountingObjectsProcessing motionProcessor, parece que se ha declarado la variable dos veces, una vez que no se ha inicializado y una vez inicializado.

Una alcance método exterior y un ámbito de método dentro.

Creo que es donde su NullReferenceException está viniendo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top