Ejemplo Adaptador de Imágenes
English
Descripción
El Adaptador de Imágenes te permite comparar dos imágenes. Hay que tener claro que las imágenes se comparan píxel a píxel. Por eso se ha creado una función que compara y que devuelva el porcentaje de la diferencia:
-
Si las imágenes son exactamente las mismas, píxel a píxel, la diferencia es 0, es decir son idénticas..
-
Si hay alguna variación, es decir si se ha redimensionado la foto o se le ha modificado el color, el porcentaje estará comprendido entre 0 y 10.
-
Si las imágenes que se comparan son totalmente diferentes el porcentaje estará entre 11 y 20.
-
El Adaptador de Imágenes tiene un único Parámetro de Inicialización. Este parámetro es la ruta a la imagen con la que queremos trabajar:
-
FilePath: ruta completa donde está guardada la imagen.
-
Enunciado del ejercicio
Vamos a describir las Funciones predefinidas que tiene este Adaptador y seguidamente diferentes ejemplos de las mencionadas Funciones.
-
compareWithAnother: compara la imagen del adaptador con otra imagen. Tiene dos parámetros de entrada y uno de salida:
-
-
ImageToCompare: ruta de la imagen a comparar. Es obligatorio.
-
ResultPath: ruta a la carpeta donde dejar el resultado. Es opcional. Si está vacío, la imagen resultante estará en la ruta TCD. La nueva imagen será una imagen con rectángulos rojos que marcan la diferencia entre imágenes.
-
DifferencePercent: parámetro de salida. Es un dato de tipo double y da información sobre el porcentaje de diferencia.
Primer ejemplo: comparar imágenes iguales.
El Adaptador de Imagen, va a tener como único parámetro la ruta (Path) a la imagen con la que quieres trabajar:
-
-
Si queremos comparar esta imagen con otra, tenemos que usar esta función y dentro ponerle la ruta de la otra imagen que queremos comparar:
Donde se va a guardar la imagen resultante es opcional. Si le ponemos una ruta, se va a guardar en dicha ruta. Si no le ponemos nada se va a guardar dentro del directorio del TCD.
Como son exactamente la misma imagen, al ejecutar el caso de prueba:
Y si a continuación, abrimos la carpeta con los logs nos dice que el porcentaje de la diferencia. El resultado que nos aparece es que hay cero diferencias:
La variable de salida será un double, para que tenga decímales.
Segundo ejemplo: compara imágenes iguales de diferente tamaño.
Sigue siendo la imagen del árbol que hemos utilizado en el anterior ejemplo.
El tamaño de esta foto tiene las siguientes dimensiones:
Ahora la vamos a comparar contra:
Son exactamente la misma imagen, pero esta segunda, si abrimos la pestaña de Detalles, tiene el siguiente tamaño:
Ejecutamos el caso:
Y si a continuación, abrimos la carpeta con los logs nos dice que el porcentaje de la diferencia es:
En este ejemplo ya si encuentra diferencias.
Al ser diferentes las imágenes, nos va a marcar las diferencias que encuentra, enmarcándolas en rojo:
Nota: hasta 10, puede ser la misma imagen que ha sido redimensionada colocada en blanco y negro.
Tercer ejemplo: cambios en la imagen.
En este ejemplo se han añadido unas bolas de color amarillo. Es la misma imagen y el mismo tamaño.
Va marcando las diferencias que encuentra, que son justamente las bolas amarillas, enmarcadas en rojo:
Y si a continuación, abrimos la carpeta con los logs, nos dice que el porcentaje de la diferencia es:
Cuarto ejemplo: misma imagen ensombrecida.
En este ejemplo se va a comparar con la misma imagen, pero más ensombrecida.

Al ejecutar el caso:
Nos dice que la imagen es diferente en su totalidad, ya que enmarca toda la imagen en rojo:
Y si a continuación, abrimos la carpeta con los logs, nos dice el porcentaje de la diferencia. Pero al ser la misma imagen, la diferencia que encuentra no es muy alta. Es del:
Faltarían 19 imágenes
Recuadrar y volver a ejecutar los casos de prueba para mejorar la calidad de imagen de todas las capturas,en total Llevo 25. C:\CompareImages\Actual
Quinto ejemplo: dos imágenes distintas
Si comparamos dos imágenes completamente distintas la diferencia empieza a ser del 20 %.
En este ejemplo, elegimos para comparar, la imagen del avión:

En la carpeta del TCD, nos devuelve la segunda imagen, la imagen del avión.
La diferencia se acerca al 20. Cuando se acerca al 20, ya no tiene nada que ver una con otra.
-
Resize: permite redimensionar una imagen. Tiene tres parámetros de entrada:
-
-
ImageToTransform: ruta de la imagen a transformar. Es opcional. Si el usuario no introduce ninguna ruta, TAST utiliza la ruta del adaptador de imagen.
-
Scale: es un dato obligatorio Si el número es positivo aumenta la imagen. Si es un número negativo reduce la imagen.
-
ResultPath: ruta a la carpeta donde dejar el resultado. Es opcional. Si está vacío, la imagen resultante estará en la ruta TCD.
Primer ejemplo: agrandar una imagen.
Hemos elegido una imagen, en este caso, la imagen de un gato:
IMPORTANTE: Esta función también nos permite redimensionar otra imagen. Si rellenamos este valor (enmarcado a continuación en rojo), nos redimensionará la imagen que le pongamos, no la que tiene el adaptador en su configuración.
En nuestro ejemplo vamos a agrandar la imagen del gato. Le añadimos el valor 10.
Ejecutamos el caso de prueba
El resultado nos dice que ha ido bien:
Y obtenemos como resultado la imagen del gato ampliada. Si nos vamos a Propiedades, vemos que el tamaño de la imagen es 10 veces mayor:
Ya que el tamaño de la imagen inicial, con la que partíamos, era de:
Segundo ejemplo: reducir una imagen.
Partimos de la misma imagen inicial y para conseguir reducirla le añadimos el valor -10:
Obtenemos como resultado la imagen del gato muy reducida. Si nos vamos a Propiedades, vemos que el tamaño de la imagen es 10 veces menor:
IMPORTANTE: Si ahora quisiéramos comparar la imagen ampliada y la imagen reducida, debemos poner en la configuración del Adaptador la imagen grande para que la compare con la imagen pequeña, de esta manera acortamos el tiempo que tarda en generarse la imagen resultante. Porque el resultado es una tercera imagen que se genera a partir de la segunda imagen (no la del adaptador). Por tanto, si la segunda imagen es muy grande, al adaptador le llevará mucho tiempo copiarla.
-
-
-
transformBlackAndWhite: permite transformar una imagen en color, en una imagen en blanco y negro. Tiene dos parámetros de entrada:
-
-
ImageToTranform: ruta de la imagen a transformar. Es opcional. Si el usuario no introduce ninguna ruta, TAST utiliza la ruta del adaptador de imagen.
-
ResultPath: ruta a la carpeta donde dejar el resultado. Es opcional. Si está vacío, la imagen resultante estará en la ruta del TCD.
Primer ejemplo: transformar una imagen en color en una imagen en blanco y negro.
Hemos elegido una imagen, en este caso, la imagen de un elefante. Es la imagen que ponemos en el Adaptador:

No rellenamos ninguno de los campos. Por tanto, lo que va a hacer es transformar la imagen del elefante en color en una imagen del elefante en blanco y negro.

Ejecutamos el caso de prueba
Y obtenemos como resultado este elefante transformado en blanco y negro:

-
-











