Пример #1
0
        void InitializeFaceDetection(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);

                    faceDetector = new WebCamFaceDetector();
                    faceDetector.ToggleVisualization();
                    faceDetector.RegisterForImages(WebcamManager.GetCamera(cameraindex));
                    faceDetector.SelectedCameraIndex = cameraindex;
                    faceDetector.RoiX          = roiX;
                    faceDetector.RoiY          = roiY;
                    faceDetector.RoiWidth      = roiWidth;
                    faceDetector.RoiHeight     = roiHeight;
                    faceDetector.FaceDetected += WebCamFaceDetected;
                }
                catch (Exception err)
                {
                    MessageBox.Show(err.ToString());
                }
            });

            thread.SetApartmentState(ApartmentState.STA);
            thread.Start();
        }
Пример #2
0
        public void OnSaved(WpfConfiguration configurationControl)
        {
            WebCamFaceDetectionConfig config = configurationControl as WebCamFaceDetectionConfig;

            config.Cleanup();
            captureWidth        = 640;
            captureHeight       = 480;
            selectedCameraPath  = config.SelectedCameraPath;
            selectedCameraName  = config.SelectedCameraName;
            selectedCameraIndex = config.SelectedCameraIndex;
            roiX        = config.RoiX;
            roiY        = config.RoiY;
            roiWidth    = config.RoiWidth;
            roiHeight   = config.RoiHeight;
            camerafocus = config.CameraFocus;
            camerazoom  = config.CameraZoom;

            if (WebcamManager.IsServiceRestartRequired())
            {
                WebcamManager.RestartService();
            }
            selectedCameraIndex = LookforSelectedCamera(true);

            if (selectedCameraIndex != -1 && selectedCameraConnected)
            {
                if (!callbacksRegistered)
                {
                    WebcamManager.RegisterWebcamConnectionEvent(OnCameraConnected);
                    WebcamManager.RegisterWebcamRemovalEvent(OnCameraDisconnected);
                    callbacksRegistered = true;
                }
                InitializeFaceDetection(selectedCameraIndex);
            }
        }
Пример #3
0
        public void OnSaved(WpfConfiguration configurationControl)
        {
            WebcamSnapshotConfig config = configurationControl as WebcamSnapshotConfig;

            config.Cleanup();
            folderLocation     = config.SaveLocation;
            fileNamePrefix     = config.FilenamePrefix;
            captureWidth       = 640;
            captureHeight      = 480;
            selectedCameraPath = config.SelectedCameraPath;
            selectedCameraName = config.SelectedCameraName;
            showPreview        = config.ShowPreview;
            playShutterSound   = config.PlayShutterSound;
            if (WebcamManager.IsServiceRestartRequired())
            {
                WebcamManager.RestartService();
            }
            //look for the selected camera
            selectedCameraIndex = LookforSelectedCamera(true);
            if (selectedCameraIndex != -1 && selectedCameraConnected)
            {
                if (!callbacksRegistered)
                {
                    WebcamManager.RegisterWebcamConnectionEvent(OnCameraConnected);
                    WebcamManager.RegisterWebcamRemovalEvent(OnCameraDisconnected);
                    callbacksRegistered = true;
                }
                InitializeSnapshot(selectedCameraIndex);
            }
        }
        private void Button_Clicked(object sender, RoutedEventArgs e)
        {
            if (!_selectedState)
            {
                SelectedCameraIndex = _selectedCameraIndex = camera_selector.GetSelectedCameraIndex();
                SelectedCameraName  = WebcamManager.GetCamera(SelectedCameraIndex).WebCamName;
                SelectedCameraPath  = WebcamManager.GetCamera(SelectedCameraIndex).WebCamPath;
                if (SelectedCameraIndex > -1 && SelectedCameraIndex < WebcamManager.NumberConnectedCameras())
                {
                    Image_Viewer.SetImageSource(WebcamManager.GetCamera(_selectedCameraIndex));
                }
                SelectorPanel.Visibility = Visibility.Collapsed;
                ROIPanel.Visibility      = Visibility.Visible;
                ButtonState.Content      = "<< Select another camera";
            }
            else
            {
                ROIPanel.Visibility = Visibility.Collapsed;
                if (_selectedCameraIndex > -1)
                {
                    WebCam camera = WebcamManager.GetCamera(_selectedCameraIndex);
                    Image_Viewer.RemoveImageSource(camera);
                    Image_Viewer.Clear();
                    Image_Viewer_Orig.RemoveImageSource(camera);
                }

                SelectorPanel.Visibility = Visibility.Visible;
                ButtonState.Content      = "Configure person detector >>";
            }
            _selectedState = !_selectedState;
        }
Пример #5
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();
        }
Пример #6
0
 private void Time_ValueChanged(object sender, RoutedPropertyChangedEventArgs <double> e)
 {
     CurrentTime = e.NewValue;
     if (_selectedCameraIndex > -1 && _selectedCameraIndex < WebcamManager.NumberConnectedCameras())
     {
         Image_Viewer.TimeSensitivity = (float)CurrentTime;
     }
 }
Пример #7
0
 private void Difference_ValueChanged(object sender, RoutedPropertyChangedEventArgs <double> e)
 {
     CurrentDifference = e.NewValue;
     if (_selectedCameraIndex > -1 && _selectedCameraIndex < WebcamManager.NumberConnectedCameras())
     {
         Image_Viewer.MotionDiffSensitivity = (int)CurrentDifference;
     }
 }
        public void Zoom_ValueChanged(object sender, RoutedPropertyChangedEventArgs <double> e)
        {
            long value = Convert.ToInt64(e.NewValue);

            CurrentZoom = Convert.ToInt32(value);
            if (_selectedCameraIndex > -1 && _selectedCameraIndex < WebcamManager.NumberConnectedCameras())
            {
                WebcamManager.SetPropertyValueManual(_selectedCameraIndex, WebcamManager.CAMERA_PROPERTY.CAMERA_ZOOM, value);
            }
        }
 public void CleanUp()
 {
     if (_selectedCameraIndex > -1)
     {
         WebCam camera = WebcamManager.GetCamera(_selectedCameraIndex);
         Image_Viewer.RemoveImageSource(camera);
         Image_Viewer.Clear();
         Image_Viewer_Orig.RemoveImageSource(camera);
     }
 }
        public void SetImageSource(int index)
        {
            if (index > -1 && _selectedCameraIndex < WebcamManager.NumberConnectedCameras())
            {
                _selectedCameraIndex = index;
                WebCam camera = WebcamManager.GetCamera(index);
                long   mn = 0, mx = 0, step = 0;
                if (WebcamManager.GetMinPropertyValue(index, WebcamManager.CAMERA_PROPERTY.CAMERA_FOCUS, ref mn) && WebcamManager.GetMaxPropertyValue(index, WebcamManager.CAMERA_PROPERTY.CAMERA_FOCUS, ref mx))
                {
                    FocusMinimum = Convert.ToDouble(mn);
                    FocusMaximum = Convert.ToDouble(mx);
                    if (FocusMinimum != FocusMaximum)
                    {
                        Focus_Slider.IsEnabled = true;
                    }
                    else
                    {
                        FocusMinimum           = 0;
                        FocusMaximum           = 1;
                        Focus_Slider.IsEnabled = false;
                    }
                }
                else
                {
                    FocusMinimum           = 0;
                    FocusMaximum           = 1;
                    Focus_Slider.IsEnabled = false;
                }

                if (WebcamManager.GetMinPropertyValue(index, WebcamManager.CAMERA_PROPERTY.CAMERA_ZOOM, ref mn) && WebcamManager.GetMaxPropertyValue(index, WebcamManager.CAMERA_PROPERTY.CAMERA_ZOOM, ref mx))
                {
                    ZoomMinimum = Convert.ToDouble(mn);
                    ZoomMaximum = Convert.ToDouble(mx);
                    if (ZoomMinimum != ZoomMaximum)
                    {
                        Zoom_Slider.IsEnabled = true;
                    }
                    else
                    {
                        ZoomMinimum           = 0;
                        ZoomMaximum           = 1;
                        Zoom_Slider.IsEnabled = false;
                    }
                }
                else
                {
                    ZoomMinimum           = 0;
                    ZoomMaximum           = 1;
                    Zoom_Slider.IsEnabled = false;
                }

                Image_Viewer.SetImageSource(camera);
                Image_Viewer_Orig.SetImageSource(camera);
            }
        }
Пример #11
0
        protected int LookforSelectedCamera(bool force = false)
        {
            bool selectedCameraFound = false;

            selectedCameraConnected = false;
            if (!IsEnabled && !force)
            {
                return(-1);
            }
            int numberConnectedCameras = WebcamManager.NumberConnectedCameras();

            if (numberConnectedCameras == 0)
            {
                selectedCameraConnected = false;
                Logger.WriteLine("No camera available");
                ErrorLog.AddError(ErrorType.Failure, "Motion detection is disabled because no camera was detected");
                return(-1);
            }
            int index = -1;

            if (selectedCameraPath == default(string))
            {
                ErrorLog.AddError(ErrorType.Message, "No webcam configuration. Defaulting to first available webcam.");
                return(-1);
            }
            else
            {
                for (int i = 0; i < numberConnectedCameras; i++)
                {
                    if (WebcamManager.GetCamera(i).WebCamPath == selectedCameraPath)
                    {
                        if (WebcamManager.GetCamera(i).IsActive)
                        {
                            index = i;
                            selectedCameraConnected = true;
                            selectedCameraFound     = true;
                            break;
                        }
                        else if (WebcamManager.StartCamera(i, captureWidth, captureHeight))
                        {
                            index = i;
                            selectedCameraConnected = true;
                            selectedCameraFound     = true;
                            break;
                        }
                    }
                }

                if (!selectedCameraFound && numberConnectedCameras > 0)
                {
                    ErrorLog.AddError(ErrorType.Failure, "The originally selected camera is not available.");
                }
                return(index);
            }
        }
Пример #12
0
 public string GetSelectedCameraName()
 {
     if (selectedCameraIndex != -1)
     {
         return(WebcamManager.GetCamera(cameraList[selectedCameraIndex]).WebCamName);
     }
     else
     {
         return(null);
     }
 }
Пример #13
0
 public void OnCameraDisconnected(object sender, USBEvent e)
 {
     string[] changedParts  = WebcamManager.GetDeviceInfoFromPath(e.DevicePath);
     string[] selectedParts = WebcamManager.GetDeviceInfoFromPath(selectedCameraPath);
     if (string.Compare(changedParts[1], selectedParts[1], true) == 0 && string.Compare(changedParts[2], selectedParts[2], true) == 0)
     {
         selectedCameraConnected = false;
         ReleasePreviousBuffers();
         WebcamManager.ReleaseInactiveCameras();
         Logger.WriteLine("Selected camera disconnected");
         ErrorLog.AddError(ErrorType.Warning, "Selected camera has been disconnected");
     }
 }
Пример #14
0
    // Start is called before the first frame update
    void Start()
    {
        m_WebcamManager  = GetComponent <WebcamManager>();
        m_NativeCvPlugin = GetComponent <CvPlugin>();
        InitializeCamera();
        m_CaptureButton.onClick.AddListener(() =>
        {
            CapturePrep();
        });

        m_DebugButton.onClick.AddListener(() =>
        {
            ResetAllDebug();
        });
    }
Пример #15
0
 protected override void OnDeleted()
 {
     if (webcambuffer != null && selectedCameraIndex != -1)
     {
         webcambuffer.UnregisterForImages(WebcamManager.GetCamera(selectedCameraIndex));
         ReleasePreviousBuffers();
         WebcamManager.ReleaseInactiveCameras();
         if (callbacksRegistered)
         {
             WebcamManager.UnregisterWebcamConnectionEvent(OnCameraConnected);
             WebcamManager.UnregisterWebcamRemovalEvent(OnCameraDisconnected);
             callbacksRegistered = false;
         }
     }
 }
Пример #16
0
 public void OnCameraConnected(object sender, USBEvent e)
 {
     if (!selectedCameraConnected)
     {
         Thread.Sleep(50);
         WebcamManager.RestartService();
         selectedCameraIndex = LookforSelectedCamera();
         if (selectedCameraIndex != -1)
         {
             Logger.WriteLine("Selected camera reconnected");
             ErrorLog.AddError(ErrorType.Message, "Selected camera has been reconnected");
             webcambuffer.RegisterForImages(WebcamManager.GetCamera(selectedCameraIndex));
             WebcamManager.ReleaseInactiveCameras();
         }
     }
 }
Пример #17
0
 protected override void OnDeleted()
 {
     if (motionDetector != null && selectedCameraIndex != -1)
     {
         motionDetector.MotionDetected -= WebCamMotionDetected;
         ReleasePreviousDetectors();
         WebcamManager.SetPropertyValueAuto(selectedCameraIndex, WebcamManager.CAMERA_PROPERTY.CAMERA_FOCUS);
         WebcamManager.SetPropertyValueAuto(selectedCameraIndex, WebcamManager.CAMERA_PROPERTY.CAMERA_ZOOM);
         WebcamManager.ReleaseInactiveCameras();
         if (callbacksRegistered)
         {
             WebcamManager.UnregisterWebcamConnectionEvent(OnCameraConnected);
             WebcamManager.UnregisterWebcamRemovalEvent(OnCameraDisconnected);
             callbacksRegistered = false;
         }
     }
 }
Пример #18
0
 public void Cleanup()
 {
     foreach (ImageViewer viewer in cameraPreviews)
     {
         for (int i = 0; i < viewer.ImageSource.SubscribedImagers.Count; i++)
         {
             viewer.ImageSource.UnregisterForImages(viewer.ImageSource.SubscribedImagers[i]);
         }
     }
     //foreach (ImageViewer viewer in mainView)
     //{
     //    for (int i = 0; i < viewer.ImageSource.SubscribedImagers.Count; i++)
     //        viewer.ImageSource.UnregisterForImages(viewer.ImageSource.SubscribedImagers[i]);
     //}
     WebcamManager.ReleaseInactiveCameras();
     WebcamManager.UnregisterWebcamConnectionEvent(OnCameraConnected);
     WebcamManager.UnregisterWebcamRemovalEvent(OnCameraDisconnected);
 }
Пример #19
0
 protected override void OnAfterLoad()
 {
     selectedCameraIndex = LookforSelectedCamera();
     if (selectedCameraIndex != -1 && selectedCameraConnected)
     {
         if (WebcamManager.IsServiceRestartRequired())
         {
             WebcamManager.RestartService();
         }
         if (!callbacksRegistered)
         {
             WebcamManager.RegisterWebcamConnectionEvent(OnCameraConnected);
             WebcamManager.RegisterWebcamRemovalEvent(OnCameraDisconnected);
             callbacksRegistered = true;
         }
         InitializeMotionDetection(selectedCameraIndex);
     }
 }
Пример #20
0
    // Start is called before the first frame update
    void Start()
    {
        WindowsVoice.speak("こんにちは。写真を登録してください。");

        retrievedHoroscope += OnRetrievedHoroscope;

        StartCoroutine(NetworkManager.GetRequest("http://api.jugemkey.jp/api/horoscope/free/2019/05/20", retrievedHoroscope));

        m_WebcamManager = GameObject.FindGameObjectWithTag("CameraManager").GetComponent <WebcamManager>();
        m_AzureManager  = GameObject.FindGameObjectWithTag("AzureManager").GetComponent <AzureManager>();
        m_BaseManager   = GameObject.Find("BaseManager").GetComponent <BaseManager>();


        m_ActivePersonGroup = GetPersonGroupId();

        m_StatusText    = GameObject.FindGameObjectWithTag("Status").GetComponent <TMPro.TextMeshProUGUI>();
        m_GroupNameText = GameObject.FindGameObjectWithTag("GroupNameText").GetComponent <TMPro.TextMeshProUGUI>();

        m_Endpoint = m_AzureManager.GetEndpoint();
        m_ApiKey   = m_AzureManager.GetApiKey();

        m_CreatePersonButton = GameObject.FindGameObjectWithTag("CreatePersonButton").GetComponent <Button>();
        m_CreatePersonButton.onClick.AddListener(() => {
            if (!m_CreatePersonButtonClicked)
            {
                string name     = GetCurrentPersonName();
                string birthday = GetCurrentPersonBirthday();
                if (!name.Equals("null") && !birthday.Equals("null"))
                {
                    Debug.Log("Checking if person Id exists...");
                    StartCoroutine(CheckPersonIdExists(name, birthday));
                    m_CreatePersonButtonClicked = true;
                }
            }
        });

        m_AddFacesButton = GameObject.FindGameObjectWithTag("AddFacesButton").GetComponent <Button>();
        m_AddFacesButton.onClick.AddListener(() => {
            // TODO : add body
            Debug.Log("Add faces body");
            AddFacesToAzure();
        });
    }
Пример #21
0
 void Start()
 {
     webcam = GameObject.FindObjectOfType<WebcamManager>();
     width = webcam.texture.width;
     height = webcam.texture.height;
     texture = new Texture2D(width, height);
     segments = height;
     colorList = new Color[segments][];
     for (int i = 0; i < segments; ++i) {
         Color[] color = new Color[width * height];
         for (int c = 0; c < width * height; ++c) {
             color[c] = Color.black;
         }
         colorList[i] = color;
     }
     texture.SetPixels(colorList[0]);
     texture.Apply(false);
     Shader.SetGlobalTexture("_TimeTexture", texture);
 }
Пример #22
0
    // Start is called before the first frame update
    void Start()
    {
        m_ApiKey = EnvironmentVariables.GetVariable("GREETER_AZURE_FACE_API_KEY");
        Debug.Log("Endpoint is : " + m_Endpoint);

        m_BaseManager   = GameObject.Find("BaseManager").GetComponent <BaseManager>();
        m_StatusText    = GameObject.FindGameObjectWithTag("Status").GetComponent <TMPro.TextMeshProUGUI>();
        m_WebcamManager = GameObject.FindGameObjectWithTag("CameraManager").GetComponent <WebcamManager>();

        persons = new List <PersonInGroup.Person>();

        m_ValidationButton = GameObject.Find("Validate").GetComponent <Button>();
        if (m_ValidationButton != null)
        {
            m_ValidationButton.onClick.AddListener(() =>
            {
                StartValidation();
            });
        }
    }
Пример #23
0
        private void Viewer_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            ImageViewer mouseViewer = sender as ImageViewer;
            int         index       = cameraList[cameraPreviews.IndexOf(mouseViewer)];

            if (index != selectedCameraIndex && selectedCameraIndex != -1)
            {
                cameraPreviews[cameraList.IndexOf(selectedCameraIndex)].ViewerBorderColor = "Transparent";
                cameraPreviews[cameraList.IndexOf(selectedCameraIndex)].ViewerWidth       = previewWidth;
                cameraPreviews[cameraList.IndexOf(selectedCameraIndex)].ViewerHeight      = previewHeight;

                mouseViewer.ViewerBorderColor = "LightGreen";
                mouseViewer.ViewerWidth       = previewHeight + 16;
                mouseViewer.ViewerHeight      = mouseViewer.ViewerWidth * 3 / 4;
                selectedCameraIndex           = cameraList[cameraPreviews.IndexOf(mouseViewer)];

                //mainView[0].TopTitle = WebcamManager.GetCamera(selectedCameraIndex).WebCamName;
                //mainView[0].SetImageSource(WebcamManager.GetCamera(selectedCameraIndex));
                selectedCameraName = WebcamManager.GetCamera(selectedCameraIndex).WebCamName;
            }
        }
Пример #24
0
 void Start()
 {
     webcam    = GameObject.FindObjectOfType <WebcamManager>();
     width     = webcam.texture.width;
     height    = webcam.texture.height;
     texture   = new Texture2D(width, height);
     segments  = height;
     colorList = new Color[segments][];
     for (int i = 0; i < segments; ++i)
     {
         Color[] color = new Color[width * height];
         for (int c = 0; c < width * height; ++c)
         {
             color[c] = Color.black;
         }
         colorList[i] = color;
     }
     texture.SetPixels(colorList[0]);
     texture.Apply(false);
     Shader.SetGlobalTexture("_TimeTexture", texture);
 }
Пример #25
0
 //[MethodImpl(MethodImplOptions.Synchronized)]
 protected override void OnEnabling(EnablingEventArgs e)
 {
     if (!e.WasConfiguring)
     {
         if (WebcamManager.IsServiceRestartRequired())
         {
             WebcamManager.RestartService();
         }
         //look for the selected camera
         selectedCameraIndex = LookforSelectedCamera(true);
         if (selectedCameraIndex != -1 && selectedCameraConnected)
         {
             if (!callbacksRegistered)
             {
                 WebcamManager.RegisterWebcamConnectionEvent(OnCameraConnected);
                 WebcamManager.RegisterWebcamRemovalEvent(OnCameraDisconnected);
                 callbacksRegistered = true;
             }
             InitializeSnapshot(selectedCameraIndex);
         }
     }
 }
Пример #26
0
        void InitializeSnapshot(int cameraindex)
        {
            Thread thread = new Thread(() =>
            {
                try
                {
                    ReleasePreviousBuffers();
                    if (webcambuffer == null)
                    {
                        webcambuffer = new WebCamBuffer();
                    }
                    webcambuffer.RegisterForImages(WebcamManager.GetCamera(cameraindex));
                }
                catch (Exception err)
                {
                    MessageBox.Show(err.ToString());
                }
            });

            thread.SetApartmentState(ApartmentState.STA);
            thread.Start();
        }
Пример #27
0
        //[MethodImpl(MethodImplOptions.Synchronized)]
        protected override void OnDisabled(DisabledEventArgs e)
        {
            if (!e.IsConfiguring)
            {
                if (faceDetector != null && selectedCameraIndex != -1)
                {
                    faceDetector.FaceDetected -= WebCamFaceDetected;
                    faceDetector.UnregisterForImages(WebcamManager.GetCamera(selectedCameraIndex));
                    ReleasePreviousDetectors();

                    WebcamManager.SetPropertyValueAuto(selectedCameraIndex, WebcamManager.CAMERA_PROPERTY.CAMERA_FOCUS);
                    WebcamManager.SetPropertyValueAuto(selectedCameraIndex, WebcamManager.CAMERA_PROPERTY.CAMERA_ZOOM);
                    WebcamManager.ReleaseInactiveCameras();
                    if (callbacksRegistered)
                    {
                        WebcamManager.UnregisterWebcamConnectionEvent(OnCameraConnected);
                        WebcamManager.UnregisterWebcamRemovalEvent(OnCameraDisconnected);
                        callbacksRegistered = false;
                    }
                }
            }
        }
Пример #28
0
        public ConnectionManager(MainWindow mainWindow, int broadcastPort, int camPort, int clientPort, string basePath)
        {
            this.mainWindow = mainWindow;
            this.BasePath = basePath;
            this.BroadcastPort = broadcastPort;
            webcamManager = new WebcamManager();
            clientManager = new ClientManager();
            relations = new Dictionary<Client, Webcam>();

            webcamListener = new TcpListener(IPAddress.Any, camPort);
            webcamListener.Start();

            ThreadStart wcListener = new ThreadStart(ListenForWebcam);
            Thread wcThread = new Thread(wcListener);
            wcThread.Start();

            clientListener = new TcpListener(IPAddress.Any, clientPort);
            clientListener.Start();

            ThreadStart clListener = new ThreadStart(ListenForClient);
            Thread clThread = new Thread(clListener);
            clThread.Start();
        }
 private void Button_Clicked(object sender, RoutedEventArgs e)
 {
     if (!_selectedState)
     {
         SelectedCameraIndex = camera_selector.GetSelectedCameraIndex();
         SelectedCameraName  = WebcamManager.GetCamera(SelectedCameraIndex).WebCamName;
         SelectedCameraPath  = WebcamManager.GetCamera(SelectedCameraIndex).WebCamPath;
         if (SelectedCameraIndex > -1 && SelectedCameraIndex < WebcamManager.NumberConnectedCameras())
         {
             camera_roi_selector.SetImageSource(SelectedCameraIndex);
         }
         SelectorPanel.Visibility = Visibility.Collapsed;
         ROIPanel.Visibility      = Visibility.Visible;
         ButtonState.Content      = "<< Select another camera";
     }
     else
     {
         ROIPanel.Visibility = Visibility.Collapsed;
         camera_roi_selector.CleanUp();
         SelectorPanel.Visibility = Visibility.Visible;
         ButtonState.Content      = "Configure motion detector >>";
     }
     _selectedState = !_selectedState;
 }
Пример #30
0
        static void Main(string[] args)
        {
            ConsoleWriter.WriteColoredText("Webcammer woohoo!!!", ConsoleColor.Black, ConsoleColor.White);
            foreach (Webcam wc in WebcamManager.Enumerate())
            {
                ConsoleWriter.WriteColoredText(wc.ToString(), ConsoleColor.DarkBlue, ConsoleColor.Yellow);
            }
            Webcam cam2 = WebcamManager.Enumerate().First(x => x.ToString().ToUpper().Contains("LIFE"))
                          ?? WebcamManager.Enumerate().First();

            ConsoleWriter.WriteColoredText("Using webcam: " + cam2, ConsoleColor.Green, ConsoleColor.DarkYellow);
            ConsoleWriter.WriteQuestionMessage("Interval in seconds: ", false);
            if (!Double.TryParse(Console.ReadLine(), out var interval))
            {
                interval = 3;
            }
            while (true)
            {
                var pic           = cam2.TakePicture();
                var picCompressed = Bitmapper.CompressImage(pic);
                SaveImage(picCompressed, ImageFormat.Jpeg, "webcam.jpg");
                Wait((int)(interval * 1000));
            }
        }
Пример #31
0
 // Start is called before the first frame update
 void Start()
 {
     m_WebcamManager              = GameObject.FindGameObjectWithTag("CameraManager").GetComponent <WebcamManager>();
     WebcamManager.RegisterPhoto += PhotoCountUp;
     m_Count = GetComponent <TMPro.TextMeshProUGUI>();
 }
Пример #32
0
        public override void UpdateFrame(object sender, EventArgs e)
        {
            WebCam camera = sender as WebCam;

            SelectedCameraIndex = camera.WebCamID;
            if (camera.ImageBuffer == null)
            {
                return;
            }


            if (ImagerWidth != default(double) && ImagerHeight != default(double) && SelectedCameraIndex > -1 && SelectedCameraIndex < WebcamManager.NumberConnectedCameras())
            {
                try
                {
                    int scaledRoiX      = Math.Max(Math.Min(Convert.ToInt32(ImagerWidth * RoiX), Convert.ToInt32(ImagerWidth)), 0);
                    int scaledRoiY      = Math.Max(Math.Min(Convert.ToInt32(ImagerHeight * RoiY), Convert.ToInt32(ImagerHeight)), 0);
                    int scaledRoiWidth  = Math.Max(Math.Min(Convert.ToInt32(ImagerWidth * RoiWidth), Convert.ToInt32(ImagerWidth)), 0);
                    int scaledRoiHeight = Math.Max(Math.Min(Convert.ToInt32(ImagerWidth * RoiHeight), Convert.ToInt32(ImagerHeight)), 0);
                    if (Detector.DetectFace(camera.ImageBuffer, Convert.ToInt32(ImagerWidth), Convert.ToInt32(ImagerHeight), scaledRoiX, scaledRoiY, scaledRoiWidth, scaledRoiHeight))
                    {
                        OnFaceDetected(EventArgs.Empty); // trigger event
                    }

                    if (showDebug)
                    {
                        Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Render, (SendOrPostCallback) delegate
                        {
                            populateBitMap(Detector.cvOutImage.Bytes, (int)(ImagerWidth * ImagerHeight * 3));
                            BitmapSource.Invalidate();
                            GC.Collect(); //this is due to a bug in InteropBitmap which causes memory leaks for 24 bit bitmaps... MS: FIX IT!
                        }, null);
                    }
                }

                catch (Emgu.CV.Util.CvException ex)
                {
                    System.Windows.Forms.MessageBox.Show(ex.ErrorMessage);
                }
            }
        }