Я пытаюсь настроить обнаружение движения с помощью платформы 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);
}