Frage

Ich versuche, MotionDetction mit dem Framework von Aforge.net einzurichten. Ich verwende die Informationen auf Dies Seite.

Ich habe einen DirectShow -Videostream eingerichtet, der einen Teil meines Desktops über einen Stream füttert. Ich kann diesen Stream im Beispiel -Videoplayer -Projekt auswählen, das mit AForge versehen ist. (Und ich sehe meinen Desktop über den Player).

Wenn ich jedoch den folgenden Code ausführe, erhalte ich eine NullReferencexception. Was vermisse ich?

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

Das detector wird als private Klassenvariable initialisiert, wenn ein Videostream ausgewählt wird.

    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);
    }
War es hilfreich?

Lösung

Schauen Sie sich das an die BlobCountingObjectsProcessing motionProcessor, Es scheint, dass Sie die Variable zweimal deklariert haben, sobald sie nicht initialisiert und einmal initialisiert wurden.

Ein externen Methodenumfang und ein Inside -Methodenbereich.

Ich denke, dort kommt Ihre NullRreferencexception.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top