2016-10-18 9 views
1

Ich habe gerade angefangen, Affectiva SDK für C# zu verwenden, und nach ein paar Läufen stolperte ich über ein ständiges Absturzproblem. Ich benutze die Kamera-Verarbeitung, auf x86-Architektur und .Net 4.5.1. Ich habe VS 2013 installiert. Mein Betriebssystem ist Windows 10. Ich habe "opencv_ffmpeg248" und "affdex-native" in meiner Ausgabe hinzugefügt. Der Code wird erstellt und wird ordnungsgemäß ausgeführt. Von Zeit zu Zeit werden jedoch während der Laufzeit Fehler ausgegeben und die Anwendung geschlossen.Affectiva C# SDK stürzt ab

Dies ist der Code, den ich verwende:

public class Class1 : Affdex.ImageListener 
{ 
    private Affdex.CameraDetector _detector; 

    public event EventHandler<string[]> AllValuesEvent; 

    public Class1() 
    { 
     _detector = new Affdex.CameraDetector(); 
     _detector.setDetectAllEmotions(true); 
     _detector.setDetectAllAppearances(true); 

     String classifierPath = @"C:\Program Files (x86)\Affectiva\Affdex SDK\data"; 
     _detector.setClassifierPath(classifierPath); 
     _detector.setImageListener(this); 
     _detector.start(); 
    } 

    public void StopCamera() 
    { 
     _detector.stop(); 
    } 


    public void onImageCapture(Frame frame) 
    { 

    } 

    public void onImageResults(Dictionary<int, Face> faces, Frame frame) 
    { 
     if (faces.Count > 0) 
     { 
      Face face = faces.First().Value; 

      Console.WriteLine("Age: {0} Gender: {1} Glasses: {2}", 
       face.Appearance.Age, 
       face.Appearance.Gender, 
       face.Appearance.Glasses); 

      string[] names = new string[8]; 
      string[] values = new string[8]; 

      names[0] = "Anger"; 
      names[1] = "Contempt"; 
      names[2] = "Disgust"; 
      names[3] = "Engagement"; 
      names[4] = "Fear"; 
      names[5] = "Joy"; 
      names[6] = "Sadness"; 
      names[7] = "Surprise"; 

      values[0] = face.Emotions.Anger.ToString("F2"); 
      values[1] = face.Emotions.Contempt.ToString("F2"); 
      values[2] = face.Emotions.Disgust.ToString("F2"); 
      values[3] = face.Emotions.Engagement.ToString("F2"); 
      values[4] = face.Emotions.Fear.ToString("F2"); 
      values[5] = face.Emotions.Joy.ToString("F2"); 
      values[6] = face.Emotions.Sadness.ToString("F2"); 
      values[7] = face.Emotions.Surprise.ToString("F2"); 

      RaiseAllValuesEvent(names, values); 
     } 
    } 

    private void RaiseAllValuesEvent(string[] names, string[] values) 
    { 
     if (AllValuesEvent != null) 
     { 
      AllValuesEvent(names, values); 
     } 
    } 
} 

Dies sind die Fehler, die angezeigt werden: enter image description here enter image description here

jemand irgendwelche Vorschläge?

Vielen Dank.

+3

Hey, ein Problem könnte sein, dass Sie Debug-und Release-DLLs mischen .. Können Sie sicherstellen, dass Sie die DLLs importieren, die Ihr Build-Profil entsprechen. – ahamino

+0

Nun, anscheinend scheint Ihr Vorschlag mein Problem gelöst zu haben. Ich werde es weiterhin für die nächsten Tage überwachen, um zu sehen, ob ich immer noch den Fehler mit den Release-Dlls bekomme und mit dem Ergebnis zurückkomme. –

+0

hallo, @ahamino Ihr Vorschlag mein Problem behoben. Vielen Dank. Ich kann deinen Kommentar nicht als Antwort markieren. –

Antwort

1

Ich poste dies hier, um als Antwort markieren zu können, und dieses Thema geschlossen zu haben.

Wie von @ahamino in einem Kommentar vorgeschlagen, war das Problem die Tatsache, dass ich Debug-DLLs versehentlich in meine Referenzen gemischt habe. Das Hinzufügen von nur Release-DLLs behebt mein Problem.

Nochmals vielen Dank @ahamino.