static void processCamera(String trainingDataFolder, bool record) { try { Affdex.Detector detector = null; System.Console.WriteLine("Trying to process a camera feed..."); double FPS = 30.0D; uint faceNo = 1; Affdex.FaceDetectorMode faceLarge = Affdex.FaceDetectorMode.LARGE_FACES; detector = new Affdex.CameraDetector(0, FPS, FPS, faceNo, faceLarge); if (detector != null) { System.Globalization.CultureInfo customCulture = (System.Globalization.CultureInfo)System.Threading.Thread.CurrentThread.CurrentCulture.Clone(); customCulture.NumberFormat.NumberDecimalSeparator = "."; System.Threading.Thread.CurrentThread.CurrentCulture = customCulture; string pV = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); if (Environment.OSVersion.Version.Major >= 6) { pV = Directory.GetParent(pV).ToString(); } string Fname = Path.Combine(@pV, "video_" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".avi"); ProcessVideo videoForm = new ProcessVideo(detector, FPS); if (record) { videoForm.setOutputVideoFile(Fname); } detector.setClassifierPath(trainingDataFolder); detector.setDetectAllEmotions(true); detector.setDetectAllExpressions(true); detector.setDetectAllEmojis(true); detector.setDetectAllAppearances(true); detector.start(); System.Console.WriteLine("Face detector mode = " + detector.getFaceDetectorMode().ToString()); videoForm.ShowDialog(); videoForm.Dispose(); /* * detector.stop(); * detector.Dispose(); */ } } catch (Exception ex) { Console.WriteLine("ERROR: " + ex.Message); } }
static void Main(string[] args) { Affdex.Detector detector = new Affdex.CameraDetector(0, 30, 30, 3, Affdex.FaceDetectorMode.LARGE_FACES); Form1 feed = new Form1(detector); detector.setClassifierPath("E:\\Ufpel\\TCC\\APIs\\AffdexSDK\\data"); detector.setDetectAllEmotions(true); detector.setDetectAllEmojis(true); detector.start(); feed.ShowDialog(); detector.stop(); }
/// <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); } }
private void StartCameraProcessing() { try { btnStartCamera.IsEnabled = false; btnResetCamera.IsEnabled = btnShowPoints.IsEnabled = btnStopCamera.IsEnabled = btnExit.IsEnabled = true; // Instantiate CameraDetector using default camera ID mCameraDetector = new Affdex.CameraDetector(); mCameraDetector.setClassifierPath(GetClassifierDataFolder()); // Set the Classifiers that we are interested in tracking TurnOnClassifiers(); // Initialize Classifier cache for (int index = 0; index < mAffdexClassifierValues.Count(); index++) { mAffdexClassifierValues[index] = 0; } mCachedSkipFaceResultsCount = 0; mCameraDetector.setImageListener(this); mCameraDetector.setProcessStatusListener(this); // Set the License Path mCameraDetector.setLicensePath(GetAffdexLicense()); mStartTime = DateTime.Now; mCameraDetector.start(); // Delay loading the Classifier panel until 1st face mFirstFaceRecognized = false; // Hide the logo imgAffdexLogoDisplay.Visibility = Visibility.Hidden; } 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); } }
private void StartCameraProcessing() { try { btnStartCamera.IsEnabled = false; btnResetCamera.IsEnabled = btnShowPoints.IsEnabled = btnStopCamera.IsEnabled = btnExit.IsEnabled = true; // Instantiate CameraDetector using default camera ID mCameraDetector = new Affdex.CameraDetector(); mCameraDetector.setClassifierPath(GetClassifierDataFolder()); // Set the Classifiers that we are interested in tracking TurnOnClassifiers(); // Initialize Classifier cache for (int index = 0; index < mAffdexClassifierValues.Count(); index++) { mAffdexClassifierValues[index] = 0; } mCachedSkipFaceResultsCount = 0; mCameraDetector.setImageListener(this); mCameraDetector.setProcessStatusListener(this); // Set the License Path mCameraDetector.setLicensePath(GetAffdexLicense()); mStartTime = DateTime.Now; mCameraDetector.start(); // Delay loading the Classifier panel until 1st face mFirstFaceRecognized = false; // Hide the logo imgAffdexLogoDisplay.Visibility = Visibility.Hidden; } 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); } }