in src/CognitiveKioskUWP/Controls/Captions.xaml.cs [36:122]
public void UpdateEvent(CognitiveEvent mainEvent)
{
if (mainEvent.ImageAnalysisCV == null || mainEvent.ImageAnalysisCV.Predictions == null)
{
if (mainEvent.ImageAnalysis.Description.Captions.Count > 0)
{
textDescription.Text = mainEvent.ImageAnalysis.Description.Captions.FirstOrDefault().Text;
}
}
if (mainEvent.ImageAnalysisCV != null && mainEvent.ImageAnalysisCV.Predictions != null)
{
var preds = mainEvent.ImageAnalysisCV.Predictions.Where(x => x.Probability >= settings.CustomVisionThreshold / 100d).ToList();
if (preds.Count() > 0)
{
textDescription.Text = "Custom Vision: " + string.Join(",", preds.Select(x => x.TagName).Distinct());
for (int i = 0; i < preds.Count(); i++)
{
var pred = preds[i];
//int convertedTop = (int)((pred.BoundingBox.Top * (int)captureControl.ActualHeight) / mainEvent.ImageHeight) - ((int)captureControl.Margin.Top);
//int convertedLeft = (int)(((pred.BoundingBox.Left) * (int)captureControl.ActualWidth) / mainEvent.ImageWidth) - ((int)captureControl.Margin.Left);
int convertedTop = (int)((pred.BoundingBox.Top * captureControl.ActualHeight)) ;
int convertedLeft = (int)((pred.BoundingBox.Left * captureControl.ActualWidth));
int width = (int)(pred.BoundingBox.Width * captureControl.ActualWidth);
int height = (int)(pred.BoundingBox.Height * captureControl.ActualHeight);
ObjectBox uc = null;
Brush brush = null;
switch (i)
{
case 0:
uc = box1;
brush = brush1;
box1.Visibility = Visibility.Visible;
break;
case 1:
uc = box2;
brush = brush2;
box2.Visibility = Visibility.Visible;
break;
case 2:
uc = box3;
brush = brush3;
box3.Visibility = Visibility.Visible;
break;
case 3:
uc = box4;
brush = brush4;
box4.Visibility = Visibility.Visible;
break;
}
if(uc != null)
UpdateBox(uc, convertedLeft, convertedTop, width, height, pred.TagName + " " + pred.Probability.ToString("P"), brush);
}
}
else if (mainEvent.ImageAnalysis.Description.Captions.Count > 0)
{
textDescription.Text = mainEvent.ImageAnalysis.Description.Captions.FirstOrDefault().Text;
}
else
textDescription.Text = "";
for (int i = preds.Count(); i < 4; i++)
{
switch (i)
{
case 0:
box1.Visibility = Visibility.Collapsed;
break;
case 1:
box2.Visibility = Visibility.Collapsed;
break;
case 2:
box3.Visibility = Visibility.Collapsed;
break;
case 3:
box4.Visibility = Visibility.Collapsed;
break;
}
}
}
}