2012-02-18 12 views
1

私は(最後のもの)は、このコードをコンパイルしようとしている: http://www.aforgenet.com/framework/features/blobs_processing.htmlC#とAForge - 未割り当てのローカル変数edgePointsの使用

が、それはスロー:「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); 

そして、これは彼がに問題がある行です:

0を

は私がedgePointsにNullを割り当てることが結ばれたが、それは失敗しました:

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

問題は何ですか?すべてが動作するはずですので、私はソースコードを変更しませんでした。..

+0

そのコードは本当に間違っています、多分それについてのサイトの所有者に伝えるべきです。 – svick

答えて

1

あなたも、する必要が - それに値を割り当てる:

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

あなたは、そのインスタンスのメソッドを呼び出す前。

あなたleftPointsrightPointsはおそらく

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

コール(outキーワードを注意してください)によって初期化されているが、edgePointsではありませんされている - あなたは自分で行う必要があります。

+0

ありがとう!開発者がコンパイル不可能なコードを入力するのは奇妙ですが、 – Alex

+0

@Alex:それは確かに奇妙です。 –

+0

私は文字を検出しようとしているときにBlob検出の問題を手伝ってもらえますか? "i"は "I"と "dot"の2つのオブジェクトとして検出されます – Alex

関連する問題