예제 #1
0
        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;
            }
        }
예제 #2
0
        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);
            }
        }