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