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:
jemand irgendwelche Vorschläge?
Vielen Dank.
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
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. –
hallo, @ahamino Ihr Vorschlag mein Problem behoben. Vielen Dank. Ich kann deinen Kommentar nicht als Antwort markieren. –