Question

Après résoud fonction du problème, mais je ne comprends pas comment l'appeler, en particulier « Liste ImgLetters » partie.

  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;
    }

Maintenant, regardons ceci:

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

Bitmap SourceImg - image, où blobs seront trouvés

int LettersCount - blob que nous allons extraire (nombre)

Liste ImgLetters - ???

Qu'est-ce que 3ème paramètre faire (comment appeler cette fonction)?

Bitmap image1 = new Bitmap(@"C:\1.png");    
..
ApplyBlobExtractor (image1, 1, ??? )
..
image2.save(@"C:\2.png")
Était-ce utile?

La solution

un paramètre out vous permet d'obtenir des résultats retour d'un appel de méthode autre que par le paramètre de retour. http://msdn.microsoft.com/en -us / bibliothèque / t3c3bfhx (v = vs.80) .aspx

Dans votre exemple, la méthode ApplyBlobExtractor il semble prendre une image source, et un LetterCount (probablement le nombre de lettres que vous attendez à trouver), il utilise ensuite cet objet Blobcounter pour hacher. Il retourne vrai si elle trouve le même nombre de lettres que vous attendez à trouver. Il sera également vous fournir les images de sortie en retour de la liste par le paramètre out.

pour appeler ce serait ferait quelque chose comme ...

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

List<Bitmap> foundImages;

bool result = ApplyBlobExtractor(img1, 1, out foundImages);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top