-2

次の関数は問題を解決しますが、呼び出し方、特に「out List ImgLetters」の部分がわかりません。

  public static bool ApplyBlobExtractor (Bitmap SourceImg, int LettersCount, out List<Bitmap> ImgLetters)
    {
        ImgLetters = null;
        ImgLetters = new List<Bitmap> ();

        BlobCounter blobCounter  = new BlobCounter ();

        // Sort order
        blobCounter.ObjectsOrder = ObjectsOrder.XY;            
        blobCounter.ProcessImage (SourceImg);
        Blob[] blobs             = blobCounter.GetObjects (SourceImg, false);            

        // Adding images into the image list            
        UnmanagedImage currentImg;            
        foreach (Blob blob in blobs)
        {
            currentImg = blob.Image;
            ImgLetters.Add (currentImg.ToManagedImage ());
        }            

        return ImgLetters.Count == LettersCount;
    }

これを見てみましょう:

public static bool ApplyBlobExtractor (Bitmap SourceImg, int LettersCount, out List<Bitmap> ImgLetters)

Bitmap SourceImg - 画像、ブロブが見つかる場所

int LettersCount - 抽出する blob (数値)

out List ImgLetters - ???

3 番目のパラメーターは何をしますか (この関数を呼び出す方法)?

Bitmap image1 = new Bitmap(@"C:\1.png");    
..
ApplyBlobExtractor (image1, 1, ??? )
..
image2.save(@"C:\2.png")
4

1 に答える 1

1

パラメータを使用するoutと、戻りパラメータ以外のメソッド呼び出しから結果を取得できます。http://msdn.microsoft.com/en-us/library/t3c3bfhx(v=vs.80).aspx

あなたの例ではApplyBlobExtractor、ソース Bitmap と LetterCount (おそらく検索する文字数) を取得するように見えるメソッドは、この Blobcounter オブジェクトを使用してそれを切り刻みます。予想と同じ数の文字が見つかった場合は true を返します。また、out パラメータを介して、出力イメージをリストとして提供します。

それを呼び出すと、次のようになります...

Bitmap img1 = new Bitmap(@"C:\1.png");

List<Bitmap> foundImages;

bool result = ApplyBlobExtractor(img1, 1, out foundImages);
于 2012-02-18T17:23:03.513 に答える