0

我正在尝试使用 AForge.NET 框架设置运动检测。我正在使用页面上提供的信息。

我已经设置了一个 DirectShow 视频流,它通过流向我的桌面的一部分提供数据。我可以在 AForge 提供的示例视频播放器项目中选择此流。(我通过播放器看到我的桌面)。

但是,当我运行下面的代码时,我收到了 NullReferenceException。我错过了什么?

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

The detectoris initialized as private class variable when a videostream is chosen.

    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);
    }
4

1 回答 1

1

看一下BlobCountingObjectsProcessing motionProcessor,您似乎已经声明了两次变量,一次未初始化,一次初始化。

一个外部方法范围和一个内部方法范围。

我认为这就是您的 NullReferenceException 的来源。

于 2009-12-19T19:54:23.967 回答