как посчитать количество прямоугольников на изображении с помощью Aforge - PullRequest
0 голосов
/ 11 марта 2020

Я использую aforge dll для обнаружения прямоугольников на изображении. Пример:

static void Main(string[] args)
{
    string path = "rectangles.png";
    Bitmap image = (Bitmap)Bitmap.FromFile(path);

    // locating objects
    BlobCounter blobCounter = new BlobCounter();

    blobCounter.FilterBlobs = true;
    blobCounter.MinHeight = 400;
    blobCounter.MinWidth = 600;

    blobCounter.ProcessImage(image);
    Blob[] blobs = blobCounter.GetObjectsInformation();

    // check for rectangles
    SimpleShapeChecker shapeChecker = new SimpleShapeChecker();

    foreach (var blob in blobs)
    {

        List<IntPoint> edgePoints = blobCounter.GetBlobsEdgePoints(blob);
        List<IntPoint> cornerPoints;

        // use the shape checker to extract the corner points
        if (shapeChecker.IsQuadrilateral(edgePoints, out cornerPoints))
        {
            // only do things if the corners form a rectangle
            if (shapeChecker.CheckPolygonSubType(cornerPoints) == PolygonSubType.Rectangle)
            {
                How do i count how many rectangles there is in here
                //List<Point> Points = new List<Point>();

                //foreach (var point in cornerPoints)
                //{

                //}
            }
        }
    }
}

Итак, в приведенном выше примере я хочу посчитать и вернуть количество прямоугольников на изображении. enter image description here

Таким образом, мой вывод должен быть count = 3, потому что есть 3 прямоугольника. Как мне их посчитать?

...