Skip to main content

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: 

Comparar Imágenes iguales 0.png

Comparar Imágenes iguales1.png



Si queremos comparar esta imagen con otra, tenemos que usar esta función y dentro ponerleindicarle la ruta de la otra imagen que queremos comparar:


Comparar Imágenes iguales 2.1.png
Comparar Imágenes iguales 2.png

Donde se vavaya a guardar la imagen resultanteresultante, 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

Ejecutamos el caso de prueba:

Comparar Imágenes iguales 3.png

Comparar Imágenes iguales 6.png



YComo son exactamente la misma imagen, si a continuación,n abrimos la carpeta con los logs nos dice que el porcentaje de la diferencia. El resultado que nos aparecediferencia es que hay cero diferencias::

Comparar Imágenes iguales 4.png


La variable de salida será un double, para que tenga decímales.

Comparar Imágenes iguales 5.png



Segundo ejemplo: compara imágenes iguales de diferente tamaño.

Sigue siendo la imagen del árbol que hemos utilizado en el anterior ejemplo.

Comparar Imágenes iguales 0.png

El tamaño de esta foto tiene las siguientes dimensiones:

Comparar Imágenes iguales distinto tamaño1.png

Ahora la vamos a comparar contra:

Comparar Imágenes iguales distinto tamaño 2.png

Son exactamente la misma imagen, pero esta segunda, si abrimos la pestaña de Detalles, tiene el siguiente tamaño:

Comparar Imágenes iguales distinto tamaño 3.png

Ejecutamos el caso:caso de prueba:

Comparar Imágenes iguales distinto tamaño 3.1.png


Y si a continuación, abrimos la carpeta con los logs nos dice que el porcentaje de la diferencia es:

Comparar Imágenes iguales distinto tamaño 4.png

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:


Comparar Imágenes iguales distinto tamaño 5.png

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.

Comparar imágenes, cambios en la segunda imagen1.png

Comparar imágenes, cambios en la segunda imagen 2.png


Al ejecutarEjecutamos el caso:caso de prueba:

Comparar imágenes, cambios en la segunda imagen 3.png

Va marcando las diferencias que encuentra, que son justamente las bolas amarillas, enmarcadas en rojo:


Comparar imágenes, cambios en la segunda imagen 4.png

Y si a continuación, abrimos la carpeta con los logs,logs; nos dice que el porcentaje de la diferencia es:


Comparar imágenes, cambios en la segunda imagen 5.png

Cuarto ejemplo: misma imagen ensombrecida.

En este ejemplo se va a comparar con la misma imagen, pero más ensombrecida.

Comparar imágenes iguales, la segunda más ensombrecida.png


Comparar imágenes iguales, la segunda más ensombrecida 1.png

Al ejecutarEjecutamos el caso:caso de prueba:

Comparar imágenes iguales, la segunda más ensombrecida 2.png

Nos dice que la imagen es diferente en su totalidad, ya que enmarcarecuadra toda la imagen en rojo:

Comparar imágenes iguales, la segunda más ensombrecida 3.png


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:

Comparar imágenes iguales, la segunda más ensombrecida 4.png

Quinto ejemplo: dos imágenes distintas

Si comparamos dos imágenes completamente distintas la diferencia empieza a ser del 20 %. Utilizando la misma imagen del árbol, elegimos para comparar, la imagen de un avión:



Comparar Imágens totalmente distinas1.PNG

Comparar Imágens totalmente distinas2.PNG

Comparar Imágens totalmente distinas3.PNG

Al ejecutarEjecutamos el caso:caso de prueba:

Comparar Imágens totalmente distinas4.PNGComparar Imágens totalmente distinas4.PNG

 

En la carpeta del TCD, nos devuelve la segunda imagen, toda la imagen del avión remarcada en rojo.


Comparar Imágens totalmente distinas5.PNG

Comparar Imágens totalmente distinas6.PNG

El porcentaje de la diferencia se acerca a 20. Cuando se acerca a 20, ya no tiene nada que ver una con otra.

Comparar Imágens totalmente distinas7.PNG

  • 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:
        Agrandar una imagen1.PNG


      • 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.

    •  
      • Agrandar una imagen2.PNG

En nuestro ejemplo vamos a agrandar la imagen del gato. Le añadimos el valor 10.

Agrandar una imagen.PNG

Ejecutamos el caso de prueba. El resultado nos dice que ha ido bien:

Agrandar una imagen4.PNG

YAbrimos la carpeta del TCD, y obtenemos como resultado la imagen del gato ampliada.

Agrandar una imagen3.PNG

Si nos vamos a Propiedades, vemos que el tamaño de la imagen es 10 veces mayor:

Agrandar una imagen5.PNG

Ya que el tamaño de la imagen inicial, con la que partíamos, era de:

Agrandar una imagen6.PNG

Segundo ejemplo: reducir una imagen.

Partimos de la misma imagen inicial y para conseguir reducirla le añadimos el valor -10:


Reducir una imagen.PNG


Obtenemos como resultado la imagen del gato muy reducida. 

Reducir una imagen1.PNG

Si nos vamos a Propiedades, vemos que el tamaño de la imagen es 10 veces menor:

Reducir una imagen2.PNG

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.

        Transformar una imagen en color en blanco y negro1.PNG

        Hemos elegido una imagen, en este caso, la imagen de un elefante. Es la imagen que ponemos en el Adaptador:

        Transformar una imagen en color en blanco y negro2.PNG

        Transformar una imagen en color en blanco y negro3.PNG

        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.

        Transformar una imagen en color en blanco y negro4.PNG

        Ejecutamos el caso de pruebaprueba:

        Transformar una imagen en color en blanco y negro5.PNG

        Y obtenemos como resultado este elefante transformado en blanco y negro:



        Transformar una imagen en color en blanco y negro6.PNG

Transformar una imagen en color en blanco y negro7.PNG