ELIMINACIÓN DE
  MARCAS
  DE AGUA


   Creado
   17 Jun 2007


   
© Guillermo Luijk 2007



MODELADO DE UNA MARCA DE AGUA

A raiz de ver la siguiente imagen panorámica de la Ciudad de las Ciencias de Valencia en el foro de Ojo Digital, que fue subida por su autor a tamaño gigante (se componía de 12 imágenes) pero con una marca de agua como protección ante copias no autorizadas, se me ocurrió que no debía ser muy complicado idear un algoritmo que eliminase la marca de agua.


Fig. 1 Panorámica de la Ciudad de las Ciencias de Valencia (foto sin marca de agua).


Para llegar a una ecuación matemática que permita restaurar el color original de los píxels afectados por la marca me he basado en las siguientes 2 premisas:

PREMISA 1

Una marca de agua es una imagen que se superpone con cierto grado de transparencia a la imagen original, de modo que el color de cada píxel final es una combinación lineal del color de la imagen original y la marca de agua:

   [color final] = p * [color original] + (1 - p) * [color marca]

siendo 0 < p < 1 el grado de transparencia de la marca; a mayor p menos visible será la marca. Para obtener el color original habría que despejar:

   [color original] = ([color final] - (1 - p) * [color marca]) / p

Expresión que se replicaría de manera independiente para cada canal.


PREMISA 2

En todos sus píxels la marca de agua presenta un color uniforme y además se superpone a la imagen original con un grado de transparencia también uniforme. Por tanto las anteriores incógnitas [color marca] y p son constantes en todas las zonas afectadas por la marca.


Así solo tenemos que calcular esos dos parámetros, y para ello podemos tomar dos zonas cualesquiera de la imagen donde tengamos tanto el color original como el resultado de aplicar la marca, típicamente en zonas de color original uniforme atravesadas por la frontera de la marca. Se formaría así un sistema de dos ecuaciones con dos incógnitas que aunque no es lineal se resuelve de inmediato:

   f1 = p * a1 + (1 - p) * m
   f2 = p * a2 + (1 - p) * m

   a=[color original], f=[color final], m=[color marca], p=transparencia, 1,2=zona evaluada

que resolviendo queda:

   p = (f1 - f2) / (a1 - a2)
   m = (f1 * a2 - f2 * a1) / (f1 - f2 - a1 + a2)

Este sistema se puede calcular para cualquier doble pareja de pixels que se nos ocurra. Se puede resolver para muchas parejas de píxels y promediar los resultados, o bien se puede promediar el color de dos zonas uniformes y entonces resolver, todo ello con el fin de reducir la varianza.

Lo cierto es que ha bastado usar 4 píxels para tener perfectamente caracterizada la marca que empleó el autor y resolver el sistema de ecuaciones. Obtenidas las incógnitas no habría más que aplicar para restaurar la imagen original y eliminar el efecto de la marca la expresión antes vista a todos los píxels marcados:

   a = (f - (1 - p) * m) / p


EJEMPLO DE APLICACIÓN REAL

Aplicamos el algoritmo de caracterización visto a la imagen real con marca de agua. Fotografía por cortesía de su autor rubichi, de la que solo se muestra un fracción:


Fig. 2 Imagen original con marca de agua.


Como resultado se obtiene la siguiente imagen libre de marca y con el color original restituido hasta el punto de hacerse indistinguibles cuáles fueran las zonas fronterizas entre la parte de imagen marcada y la que no lo estaba:


Fig. 3 Imagen resultante de restituir el color original en las zonas con marca de agua.



CONCLUSIÓN

Para preservar la autoría de los trabajos se debe tener cuidado con el tipo de marcas de agua empleadas. El algoritmo mostrado aplica solo a marcas de agua que cumplan las premisas de uniformidad de color y transparencia vistas, que por otro lado son las de uso más habitual. Por ello si la marca hubiera tenido un cierto degradado, cambios de color, un borde considerable,... el método no habría servido.

En cualquier caso lo más aconsejable es que nunca se ponga a disposición de los demás en Internet ninguna imagen a un tamaño tal que en caso de eliminar la correspondiente marca de agua hiciera el archivo utilizable para impresión u otros fines.



gluijk@hotmail.com
  ARTÍCULOS

HOME