private void StartCameraProcessing() { try { btnStartCamera.IsEnabled = false; btnResetCamera.IsEnabled = Metrics.IsEnabled = btnStopCamera.IsEnabled = btnAppShot.IsEnabled = btnExit.IsEnabled = true; const int cameraId = 0; const int numberOfFaces = 1; const int cameraFPS = 15; const int processFPS = 15; Detector = new CameraDetector(cameraId, cameraFPS, processFPS, numberOfFaces, Affdex.FaceDetectorMode.LARGE_FACES); Detector.setClassifierPath(FilePath.GetClassifierDataFolder()); TurnOnClassifiers(); Detector.setImageListener(this); Detector.setProcessStatusListener(this); Detector.start(); canvas.Visibility = Visibility.Visible; cameraDisplay.Visibility = Visibility.Visible; } catch (AffdexException ex) { if (!String.IsNullOrEmpty(ex.Message)) { if (ex.Message.Equals("Unable to open webcam.")) { MessageBoxResult result = MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); StopCameraProcessing(); return; } } String message = String.IsNullOrEmpty(ex.Message) ? "AffdexMe error encountered." : ex.Message; ShowExceptionAndShutDown(message); } catch (Exception ex) { String message = String.IsNullOrEmpty(ex.Message) ? "error encountered." : ex.Message; ShowExceptionAndShutDown(message); } }
/// <summary> /// Starts the camera processing. /// </summary> private void StartCameraProcessing() { try { btnStartCamera.IsEnabled = false; btnResetCamera.IsEnabled = Points.IsEnabled = Metrics.IsEnabled = Appearance.IsEnabled = Emojis.IsEnabled = btnStopCamera.IsEnabled = btnAppShot.IsEnabled = btnExit.IsEnabled = true; // Instantiate CameraDetector using default camera ID const int cameraId = 0; const int numberOfFaces = 10; const int cameraFPS = 15; const int processFPS = 15; Detector = new Affdex.CameraDetector(cameraId, cameraFPS, processFPS, numberOfFaces, Affdex.FaceDetectorMode.LARGE_FACES); //Set location of the classifier data files, needed by the SDK Detector.setClassifierPath(FilePath.GetClassifierDataFolder()); // Set the Classifiers that we are interested in tracking TurnOnClassifiers(); Detector.setImageListener(this); Detector.setProcessStatusListener(this); Detector.start(); // Hide the logo, show the camera feed and the data canvas logoBackground.Visibility = Visibility.Hidden; cornerLogo.Visibility = Visibility.Visible; canvas.Visibility = Visibility.Visible; cameraDisplay.Visibility = Visibility.Visible; } catch (Affdex.AffdexException ex) { if (!String.IsNullOrEmpty(ex.Message)) { // If this is a camera failure, then reset the application to allow the user to turn on/enable camera if (ex.Message.Equals("Unable to open webcam.")) { MessageBoxResult result = MessageBox.Show(ex.Message, "AffdexMe Error", MessageBoxButton.OK, MessageBoxImage.Error); StopCameraProcessing(); return; } } String message = String.IsNullOrEmpty(ex.Message) ? "AffdexMe error encountered." : ex.Message; ShowExceptionAndShutDown(message); } catch (Exception ex) { String message = String.IsNullOrEmpty(ex.Message) ? "AffdexMe error encountered." : ex.Message; ShowExceptionAndShutDown(message); } }