C # et Aforge - extraire des images de blobs
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")
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);