Обнаружив круги на изображениях в C #, мне нужна помощь для работы моего кода, как показано ниже - PullRequest
0 голосов
/ 03 ноября 2019

Я недавно начал обработку изображений, и я хочу написать программу для обнаружения фигур, таких как круги на изображениях. Мой пример кода такой же, как приведенный ниже, но он не работает :( Я прочитал большинство связанных вопросов и ответов вЭтот форум и попытался решить мою проблему, но у меня ничего не получилось. Этот код работает, но у него нет правильных выходных данных. Если у меня есть тело, чтобы помочь мне, я был бы очень благодарен.

        DialogResult x;
        x = openFileDialog1.ShowDialog();
        if (x == DialogResult.Cancel)
            return;
        pic1.ImageLocation = openFileDialog1.FileName;

        Bitmap bmp = (Bitmap)Bitmap.FromFile(pic1.ImageLocation);
        Bitmap bmp2 = new Bitmap(bmp.Width, bmp.Height);

        BlobCounter blobcounter = new BlobCounter();
        blobcounter.ProcessImage(bmp2);
        blobcounter.FilterBlobs = true;
        blobcounter.MinHeight = bmp2.Height;
        blobcounter.MinWidth = bmp2.Width;

        Blob[] blobs = blobcounter.GetObjectsInformation();

        Graphics g = Graphics.FromImage(bmp2);
        SimpleShapeChecker shapeChecker = new SimpleShapeChecker();
        Pen yellowpen = new Pen(Color.Yellow, 2);

        for (int i = 0; i < blobs.Length; i++ )
        {
            List<IntPoint> edgePoints = blobcounter.GetBlobsEdgePoints(blobs[i]);

            AForge.Point center;
            float radius;

            if(shapeChecker.IsCircle(edgePoints, out center, out radius))
            {
                g.DrawEllipse(yellowpen,
                             (int)(center.X - radius),
                             (int)(center.Y - radius),
                             (int)(radius * 2),
                             (int)(radius * 2));
            }
        }
        yellowpen.Dispose();
        g.Dispose();
    }
...