C # и AForge - использование неназначенной локальной переменной edgePoints - PullRequest
1 голос
/ 18 февраля 2012

Я пытаюсь скомпилировать этот код (последний): http://www.aforgenet.com/framework/features/blobs_processing.html

, но выдает: Использование неназначенной локальной переменной 'edgePoints' ..

вот код:

        BlobCounter blobCounter = new BlobCounter();
        blobCounter.ProcessImage(image23);
        Blob[] blobs = blobCounter.GetObjectsInformation();
        GrahamConvexHull hullFinder = new GrahamConvexHull();
        BitmapData data = image23.LockBits(new Rectangle(0, 0, image23.Width, image23.Height), ImageLockMode.ReadWrite, image23.PixelFormat);
        foreach (Blob blob in blobs)
        {
            List<IntPoint> leftPoints, rightPoints, edgePoints;
            blobCounter.GetBlobsLeftAndRightEdges(blob, out leftPoints, out rightPoints);
            edgePoints.AddRange(leftPoints);
            edgePoints.AddRange(rightPoints);
            List<IntPoint> hull = hullFinder.FindHull(edgePoints);
            Drawing.Polygon(data, hull, Color.Red);
        }
        image23.UnlockBits(data);

И это строка, с которой у него проблема:

            edgePoints.AddRange(leftPoints);

Я привязал присвоение Null для edgePoints, но это не удалось:

List<IntPoint> leftPoints, rightPoints, edgePoints= null;

В чем проблема? Я не изменял исходный код, поэтому все должно работать ..

1 Ответ

1 голос
/ 18 февраля 2012

Вам нужно, ну - присвоить ему значение:

List<IntPoint> leftPoints, rightPoints, edgePoints;
edgePoints = new List<IntPoint>();

Перед вызовом метода в этом экземпляре.

Ваши leftPoints и rightPoints, вероятно, инициализированы как

blobCounter.GetBlobsLeftAndRightEdges(blob, out leftPoints, out rightPoints);

звоните (обратите внимание на ключевые слова out), но edgePoints нет - вам нужно сделать это самостоятельно.

...