Pregunta

La siguiente función resuelve el problema, pero no entiendo cómo llamarlo, especialmente la parte de "out lista 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;
    }

Ahora veamos esto:

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

Mapa de bits SourceImg - imagen, donde se encontrarán manchas

int LetterScount - Blob que vamos a extraer (número)

fuera de la lista imgletters - ???

¿Qué hace el tercer parámetro (cómo llamar a esta función)?

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

Solución

un out El parámetro le permite obtener los resultados de una llamada de método que no sea a través del parámetro de retorno. http://msdn.microsoft.com/en-us/library/t3c3bfhx(v=vs.80).aspx

En tu ejemplo el método ApplyBlobExtractor Parece tomar un mapa de bits de origen, y una cuenta de letras (presumiblemente el número de letras que espera encontrar) luego usa este objeto blobcounter para cortarlo. Devolverá verdadero si encuentra el mismo número de letras que espera encontrar. También le proporcionará las imágenes de salida como una lista a través del parámetro OUT.

llamarlo haría algo como ...

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

List<Bitmap> foundImages;

bool result = ApplyBlobExtractor(img1, 1, out foundImages);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top