Ich habe Probleme, das von der Emotion-API zurückgegebene Ergebnis anzuzeigen. Ergebnis wird in Form von Emotion [] zurückgegeben. Der Code ist wie folgtAnzeige der Emotion API von Project Oxford in C#
private async void button2_Click(object sender, EventArgs e)
{
try
{
pictureBox2.Image = (Bitmap)pictureBox1.Image.Clone();
String s = System.Windows.Forms.Application.StartupPath + "\\" + "emotion.jpg";
pictureBox2.Image.Save(s);
string imageFilePath = s;// System.Windows.Forms.Application.StartupPath + "\\" + "testing.jpg";
Uri fileUri = new Uri(imageFilePath);
BitmapImage bitmapSource = new BitmapImage();
bitmapSource.BeginInit();
bitmapSource.CacheOption = BitmapCacheOption.None;
bitmapSource.UriSource = fileUri;
bitmapSource.EndInit();
// _emotionDetectionUserControl.ImageUri = fileUri;
// _emotionDetectionUserControl.Image = bitmapSource;
System.Windows.MessageBox.Show("Detecting...");
***Emotion[] emotionResult*** = await UploadAndDetectEmotions(imageFilePath);
System.Windows.MessageBox.Show("Detection Done");
}
catch (Exception ex)
{
System.Windows.MessageBox.Show(ex.ToString());
}
}
und ich brauche die dominante Emotion aus den Ergebnissen der verschiedenen Emotionen zu finden.
Ich fand diese Klassendefinitionen innerhalb der Dateien von Emotion API Beispielen, aber Problem ist, dass ich es nicht in Dictionary oder eine Liste sogar mit eingebauten Befehlen konvertieren konnte. Ich nehme an, dass es einen Weg geben muss, ohne mit den Klassendefinitionen in den Microsoft.ProjectOxford.Emotion.Contract-Dateien zu kollidieren. –
Der Vorschlag von Scott ist ziemlich gut, aber wenn Sie bereits das Client-SDK verwenden, umfasst es das Serialisieren der Emotion [], um in der _other_ Emotion [] zu string und zurück zu gehen. Eine andere Option ist etwa so: '' var top = emotions.Select (> { ) var dict = neues Dictionary(); foreach (var-Eigenschaft in typeof (Scores) .GetProperties() ) { dict.Add (property.Name, (float) property.GetValue (emotion.Scores)); } return dict.OrderByDescending (kv => kv.Value) .ThenBy (kv => kv.Key) .First(); }); '' –
cthrash
@ScottHannen Mein Projekt funktioniert Danke für die Hilfe :) –