Buscar una imagen dentro de otra y obtener su posición (coordenadas x,y)
Muchas veces necesitamos desarrollar un programa que reconozca donde esta en una imagen un icono o una subimagen (una porción de la imagen principal). Vamos a usar los png2pat y visgrep, para realizar esta tarea.
Tenemos la siguiente imagen de fondo:
Y queremos buscar la subimagen donde está el icono de la nube:
Los archivos de imagen (tanto el fondo como la imagen que buscamos) deben de tener la extensión ".png", si es otra hay que convertirla con algún programa (gimp, convert, etc).
Estos serian los pasos:
1) Convertimos la imagen "nube.png" al el formato "pat" usando el comando png2pat y ">"
$png2pat nube.png > /tmp/nube.pat
2) Y ahora la buscamos en el fondo:
$visgrep fondo.png /tmp/nube.pat
3) Nos mostrará las coordenadas de donde esta la imagen "nube.pat"
$visgrep fondo.png /tmp/nube.pat
365,98 -1
Os dejo en enlace de la ayuda de los comandos que están en el paquete xautomation
png2pat
visgrep
Tenéis que tener instalado xautomation para tener los dos comandos disponibles:
En un próximo artículos haré un programa donde se usen estos comandos.
Saludos