Come il rilevamento del movimento di installazione utilizzando AForge?
-
20-09-2019 - |
Domanda
sto cercando di impostare MotionDetection utilizzando il framework AForge.NET. Sto utilizzando le informazioni fornite su questa pagina .
Ho installato un videostream DirectShow che alimenta una parte del mio desktop attraverso un flusso. Posso scegliere questo flusso nel progetto di videoregistratore di esempio che è dotato di AForge. (E vedo il mio desktop attraverso il lettore).
Tuttavia, quando si esegue il codice qui sotto ricevo un NullReferenceException. Che cosa mi manca?
// 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");
}
}
Il detector
viene inizializzata come variabile di classe privata quando viene scelto 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);
}
Soluzione
Dai un'occhiata al BlobCountingObjectsProcessing motionProcessor
, sembra aver dichiarato la variabile due volte, una volta Non inizializzato e una volta inizializzato.
Un metodo fuori portata e un metodo portata all'interno.
Credo che sia dove il vostro NullReferenceException proviene.