Я пытаюсь настроить обнаружение движения с помощью инфраструктуры 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");
}
}
При выборе видеопотока detector
инициализируется как переменная частного класса.
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);
}