Ejemplo n.º 1
0
        void InitializeMotionDetection(int cameraindex)
        {
            Thread thread = new Thread(() =>
            {
                try
                {
                    ReleasePreviousDetectors();
                    WebcamManager.SetPropertyValueManual(cameraindex, WebcamManager.CAMERA_PROPERTY.CAMERA_FOCUS, camerafocus);
                    WebcamManager.SetPropertyValueManual(cameraindex, WebcamManager.CAMERA_PROPERTY.CAMERA_ZOOM, camerazoom);

                    motionDetector = new WebCamMotionDetector();
                    motionDetector.ToggleVisualization();
                    motionDetector.RegisterForImages(WebcamManager.GetCamera(cameraindex));
                    motionDetector.SelectedCameraIndex             = cameraindex;
                    motionDetector.MotionAreaPercentageSensitivity = percentageSensitivity;
                    motionDetector.TimeSensitivity       = timeThreshold;
                    motionDetector.RoiX                  = roiX;
                    motionDetector.RoiY                  = roiY;
                    motionDetector.RoiWidth              = roiWidth;
                    motionDetector.RoiHeight             = roiHeight;
                    motionDetector.MotionDiffSensitivity = differenceThreshold;
                    motionDetector.MotionDetected       += WebCamMotionDetected;
                }
                catch (Exception err)
                {
                    MessageBox.Show(err.ToString());
                }
            });

            thread.SetApartmentState(ApartmentState.STA);
            thread.Start();
        }
Ejemplo n.º 2
0
 protected void ReleasePreviousDetectors()
 {
     if (motionDetector != null && selectedCameraIndex != -1)
     {
         for (int i = 0; i < motionDetector.SubscribedImagers.Count; i++)
         {
             motionDetector.UnregisterForImages(motionDetector.SubscribedImagers[i]);
         }
         motionDetector.Clear();
         motionDetector = null;
     }
 }