Saltar al contenido

Encontrar una imagen dentro de otra imagen

Nuestros investigadores estrellas han agotado sus reservas de café, por su búsqueda todo el tiempo por la solución, hasta que Jairo encontró el resultado en Gogs así que hoy la comparte aquí.

Solución:

Estoy respondiendo a mi pregunta ya que he encontrado la solución:

esto funcionó para mí:

System.Drawing.Bitmap sourceImage = (Bitmap)Bitmap.FromFile(@"C:SavedBMPs1.jpg");
            System.Drawing.Bitmap template = (Bitmap)Bitmap.FromFile(@"C:SavedBMPs2.jpg");
            // create template matching algorithm's instance
            // (set similarity threshold to 92.5%)

           ExhaustiveTemplateMatching tm = new ExhaustiveTemplateMatching(0.921f);
                // find all matchings with specified above similarity

                TemplateMatch[] matchings = tm.ProcessImage(sourceImage, template);
                // highlight found matchings

           BitmapData data = sourceImage.LockBits(
                new Rectangle(0, 0, sourceImage.Width, sourceImage.Height),
                ImageLockMode.ReadWrite, sourceImage.PixelFormat);
            foreach (TemplateMatch m in matchings)
            

                    Drawing.Rectangle(data, m.Rectangle, Color.White);

                MessageBox.Show(m.Rectangle.Location.ToString());
                // do something else with matching
            
            sourceImage.UnlockBits(data);

El único problema fue encontrar todas las (58) cajas de dicho juego. Pero cambiar el valor 0.921f a 0.98 lo hizo perfecto, es decir, encuentra solo la imagen del número especificado (plantilla)

Editar: De hecho, tengo que ingresar diferentes umbrales de similitud para diferentes imágenes. Encontré los valores optimizados al intentarlo, al final tengo una función como

float getSimilarityThreshold(int number)

Nos encantaría que puedieras recomendar esta noticia si si solucionó tu problema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *