Domanda

Seguire la funzione risolve il problema, ma non capisco come chiamarlo, in particolare la parte "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;
    }

Ora guardiamo questo:

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

Bitmap sourceimg - immagine, dove si troverà Blobs

int Letterscount - BLOB che stiamo per estrarre (numero)

Out List IMGLETTERS - ???

Cosa fa il 3 ° parametro (come chiamare questa funzione)?

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

Soluzione

un out Il parametro consente di ottenere i risultati da una chiamata di metodo diverso da tramite il parametro di ritorno. http://msdn.microsoft.com/en-us/library/t3c3bfhx(v=vs.80).aspx

Nel tuo esempio il metodo ApplyBlobExtractor Sembra prendere una bitmap di origine e una lettera (presumibilmente il numero di lettere che ti aspetti di trovare) usa quindi questo oggetto blobcounter per tagliarlo. Ritornerà vero se trova lo stesso numero di lettere che ti aspetti di trovare. Ti fornirà anche le immagini di output come elenco tramite il parametro Out.

chiamarlo farebbe qualcosa come ...

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

List<Bitmap> foundImages;

bool result = ApplyBlobExtractor(img1, 1, out foundImages);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top