2010-05-03 24 views
6

Básicamente, quiero encontrar la ubicación de píxeles de una imagen pequeña dentro de una imagen grande. He buscado algo similar pero no tuve suerte.Buscar posición de imagen dentro de una imagen más grande

+2

¿Será la imagen pequeña una copia exacta, píxel por píxel, de una región en la imagen más grande? Es bastante importante al seleccionar el algoritmo. – driis

Respuesta

0

Probablemente pueda usar el AForge Framework para hacer algo como esto. Ofrece una variedad de herramientas de procesamiento de imágenes. Posiblemente pueda usar su extracción de blob para extraer blobs, luego comparar esos blobs con una imagen almacenada que tenga y ver si coinciden.

0

Si las imágenes son píxel por píxel iguales, puede comenzar buscando un píxel que tenga el mismo color que el píxel (0,0) en la imagen pequeña. Una vez encontrado, compare cada píxel en el área que cubriría la imagen pequeña. Si no hay diferencias, has encontrado tu posición. De lo contrario, empiece de nuevo buscando la siguiente coincidencia de píxeles (0,0).

0

Booyer-Moore búsqueda suena como una solución aquí si trata sus píxeles como caracteres y está buscando una coincidencia exacta. Mucho más rápido que la búsqueda por píxel también.

1

Depende de qué tan similar desee que el resultado coincida con la imagen de su consulta. Si intenta hacer coincidir las partes correspondientes de diferentes imágenes fotorrealistas, eche un vistazo a la página de Wikipedia Feature detection. Lo que quiere usar depende de la transformación que espera que pase una imagen para convertirse en la otra.

Dicho esto, si busca una coincidencia exacta de píxel por píxel, una búsqueda de fuerza bruta probablemente sea mala. Puede ser O(m^2*n^2) para una imagen m*m utilizada para buscar dentro de una imagen n*n. Usando mejores algoritmos, se puede mejorar a O(n^2), lineal en el número de píxeles. Reducir el muestreo de ambas imágenes y hacer un tipo jerárquico de búsqueda podría ser un buen enfoque.

Cuestiones relacionadas