private void RenderResult(string imageFilePath, YoloResponse parsedResponse) { var topObjectsFound = parsedResponse.GetTopObjectsDetected(20); Image image = Image.FromFile(imageFilePath); var builder = new StringBuilder(); var random = new Random(); using (Graphics g = Graphics.FromImage(image)) { topObjectsFound .ForEach(a => { Color customColor = Color.FromArgb(random.Next(255), random.Next(255), random.Next(255)); var pen = new Pen(customColor, 2); var x = a.X - a.Width / 2; var y = a.Y - a.Height / 2; builder.AppendLine($"{a.ObjectLabel} with confidence {a.Confidence:p}. Position : x = {a.X}, y = {a.Y}"); g.DrawRectangle(pen, x, y, a.Width, a.Height); var brush = new SolidBrush(Color.Yellow); var font = new Font(FontFamily.GenericSansSerif, 12, FontStyle.Bold); g.DrawString(a.ObjectLabel, font, brush, x, y - 20); g.DrawString("X", font, new SolidBrush(customColor), a.X, a.Y); }); txtResults.Text = builder.ToString(); pictureBox.Image = image; } }
private void btnLoad_Click(object sender, EventArgs e) { var url = txtImageUrl.Text; var imageFilePath = Path.GetTempFileName(); DownloadImage(url, imageFilePath); ResizeImage(imageFilePath); using (var bitmap = new Bitmap(imageFilePath)) { var model = new Model(); var data = ExtractCHW(bitmap); var result = model.Evaluate(new List <List <float> > { data }) .ToList()[0] .ToList(); var parsedResponse = new YoloResponse(result); RenderResult(imageFilePath, parsedResponse); } }