Saber las diferencias entre dos imágenes con ImageMagick
Vamos a ver un nuevo comando de ImageMagick, compare que, como su nombre indica, compara imágenes. Su uso básico es extremadamente simple:
compare imagen1 imagen2 diferencia
Y nos genera una imagen nueva con las zonas cambiadas coloreadas de rojo. El rojo es el color por defecto, pelo lo podemos cambiar con:
-highlight-color $color
Veamos cómo funciona compare comparando dos imágenes iguales, pero a una le he modificado ligeramente el color del agua del río:
Y vamos a ver cómo actúa compare:
compare ebro.jpg ebro2.jpg diferencia.jpg
Y cambiando de color:
compare ebro.jpg ebro2.jpg -highlight-color green diferencia_verde.jpg
Otro operador con el que podemos trabajar es -fuzz con el que le indicaremos el nivel de tolerancia a la diferencia con la que trabaje compare. Si le indicamos un nivel medio o alto, y comparamos dos imágenes tan parecidas, el resultado es que no hay diferencias con ese umbral:
compare ebro.jpg ebro2.jpg -fuzz 30% diferencia_fuzz_30.jpg
En todas las imágenes que hemos visto generadas por compare, vemos la imagen original atenuada. Si quisiéramos que la imagen estuviera en blanco, podemos componer la imagen con -compose src
:
compare ebro.jpg ebro2.jpg -compose src diferencia_fondo_blanco.jpg