Wie richten Sie die Bewegungserkennung mit AFORGE ein?
-
20-09-2019 - |
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);
}
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.