Marca de Agua Digital en Imágenes Omar X. Avelar PROCESAMIENTO DIGITAL DE SEÑALES (ESI05AA) Instituto Tecnológico y de Estudios Superiores de Occidente (ITESO) Departamento de Electrónica, Sistemas e Informática (DESI) SINTESIS Una marca de agua digital es un mensaje que se esconde dentro de algún contenido multimedia (música, imagen, vídeo) y contiene información sobre el propio contenido (por ejemplo: quién es el autor, si existe permiso para copiarlo, si ha sido alterado de alguna manera, etc.). La prueba del concepto sera aplicada a imágenes monocromáticas y se probaran sistemas de codificación y decodificación de 1 Bit y otro de 4 Bits. c. El patrón de mensaje se multiplica por algún factor de escala α y se convierte en el patrón de suma, w a . 2. El patrón de suma, co wa , se suma al contenido (la imagen) , y se produce el contenido con marca de agua cw . INTRODUCCION Se trabajara en este caso en particular con 20 imágenes a blanco y negro con una resolución de 512x512 píxeles, después se procederá a aplicar varias técnicas de codificación de marcas de agua y se probara con un sistema implementado en GNU Octave sus ventajas analizando características especificas. Después de analizar las optimizaciones añadidas al sistema se determinara que tan perceptible son las marcas de agua aplicadas. DESARROLLO Fig. 1: Codificador básico de marca de agua. Modelo Básico El proceso de codificar (esconder) una marca de agua en una imagen requiere dos pasos (ver Fig. 1). 1. El mensaje binario wa m se mapea en un patrón de suma, , que tiene las mismas dimensiones que la imagen donde se va a esconder el mensaje. En la mayoría de los procesos de marca de agua el patrón de suma se calcula en varios pasos: Esta imagen con marca de agua puede sufrir alguna distorsión, la cual podemos modelar sumándole ruido a c w . Se dice que el decodificador de la Fig. 2 es ciego porque no tiene como dato la imagen original. La marca de agua se detecta vía la correlación de la imagen con marca de agua y los patrones de referencia (la llave es un dato que sí tiene el decodificador). a. Generalmente, se comienza con uno o más patrones de referencia, w r0 , w r1 , ..., los cuales son patrones predeterminados, generados previamente con la ayuda de una llave (o sea, un número que sirve como semilla para generar una secuencia de números pseudoaleatorios). b. Estos patrones se combinan para producir un patrón que codifique el mensaje, el cual se llama patrón de mensaje, wm . Fig. 2: Decodificador básico de marca de agua. Tema: Procesamiento Digital de Señales – Pag. 1 of 15 Guadalajara, México // lun 20 de abril de 2009. ITESO Marca de agua Digital en Imágenes Instituto Tecnológico y de Estudios Superiores de Occidente (ITESO), Periférico Sur Manuel Gómez Morín 8585, Tlaquepaque, Jalisco, México, C.P. 45090. Departamento de Electrónica, Sistemas e Informática (DESI). Por: Omar X. Avelar Usando los modelos de las Figs. 1 y 2, podemos construir un ejemplo sencillo de un sistema de marca de agua para imágenes. Para facilitar las cosas, vamos a suponer que el mensaje que se va a esconder tiene sólo un bit de información. Esto es, que m es un 0 o un 1. Experimentos : • Para probar este sistema, genera un arreglo pseudoaleatorio de 256 × 256 elementos con distribución uniforme. Normaliza este arreglo y utilízalo como patrón de referencia wr . • Asígnale al parámetro α el valor de 1. • Codifica 20 imágenes de 256 × 256 píxeles en escala de grises bajo las dos posibles condiciones: m = 0 y m = 1 (en total tendrás 40 imágenes con marca de agua). Codificador : El sistema usa un solo patrón de referencia, w r , que es un arreglo de píxeles del mismo tamaño que la imagen donde se va a esconder la marca de agua. Este patrón se genera de manera pseudoaleatoria utilizando una llave. El patrón de mensaje w m , el patrón de suma w a , y la imagen con marca de agua cw , se obtienen de la siguiente manera: { , si m=1 , si m=0 w m= wr −w r } • Pasa las 40 imágenes marcadas y las 20 imágenes originales por el decodificador, seleccionando un valor de umbral τ = 0.7. • En base a tus experimentos, explica numéricamente qué tan bueno es el sistema de marca de agua que implementaste (sugerencia: apóyate en un histograma). • Estima también la cantidad de positivos falsos y de negativos falsos que se obtienen con este sistema (positivo falso: cuando tu decodificador detecta una marca de agua donde no existe tal; negativo falso: cuando tu decodificador detecta la ausencia de una marca de agua donde sí existe). (1) • ¿Qué puedes hacer para que tu sistema resulte más robusto? w a=αw m (2) • ¿Qué puedes hacer para mejorar la fidelidad de las imágenes marcadas? c w =c o wa (3) • Diseña un sistema que esconda un mensaje de cuatro bits en imágenes de 256 × 256 píxeles. Hazle las mismas pruebas que al mensaje anterior. Nota: α es el factor de escala que controla el compromiso entre visibilidad y robustez de la marca de agua. Decodificador Para detectar la marca de agua, debemos detectar la señal ± wr en la imagen con marca de agua. La mejor manera para detectar el mensaje es calculando la correlación lineal entre la imagen recibida, c wn , y el patrón de referencia w r : r c w n , w r =c wn • wr = ∑ c wn [ x , y ] w r [ x , y ] c wn [ x , y ] En (4), píxeles en el renglón pectivamente. N wr[ x , y] y x (4) denotan los valores de los , columna y de c wn y wr , res- es el número de píxeles de la imagen. Podemos determinar si la marca de agua está presente seleccionando un valor de umbral, τ , para compararlo con la magni- r c wn , wr tud de { y obtener la salida del decodificador: 1 m n= No hay marca de agua 0 , si r c wn , wr , si ≤r c wn ,w r ≤ , si r c wn , w r } Tema: Procesamiento Digital de Señales – Pag. 2 of 15 Guadalajara, México // lun 20 de abril de 2009. ITESO Marca de agua Digital en Imágenes Instituto Tecnológico y de Estudios Superiores de Occidente (ITESO), Periférico Sur Manuel Gómez Morín 8585, Tlaquepaque, Jalisco, México, C.P. 45090. Departamento de Electrónica, Sistemas e Informática (DESI). Por: Omar X. Avelar CÓDIGO switch(m) ------------------------- BLOQUE PRINCIPAL -------------------------% Image watermarking algorithm case 0 % for 256 px by 256 px grayscale wm = -wr; % images. case 1 % wm = +wr; % Images must be located in folder "/files" case 2 % wm = zeros(size(img,1), size(img,2)); % by Omar X. Avelar % April 8th, 2009 endswitch % wa = alpha.*wm; fopen("Stats.txt", 'w'); clear all; wm_img = uint8(img + wa); %%%%%%%% Configuration Parameters %%%%%%%% % Stores the data in a structure % Seed for pattern generation stat(struct_count).img_name = img_list(l).name; key_seed = [ 3571, 35742549198872617291353508656626642567, 1627, 359334085968622831041960188598043661065388726959079837 ] ; % Strength factor of the watermark alpha = 4; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% stat(struct_count).encoded_bit = m; [ stat(struct_count).decoded_bit, stat(struct_count).corr ] = bit_decode(wm_img, wr); [ dummy, corrcoeffs(struct_count) ] = bit_decode(wm_img, wr); clc; struct_count++; cd files; %%%%%%%%%%%%% Batch Testing %%%%%%%%%%%%% cd files; img_list = dir; endfor % No. of tests endfor n_images = length(img_list) - 2; toc() struct_length = (n_images)*3; struct_count = 1; cd .. % Generates the table file % 0, 1 or No watermark fid = fopen("Stats.txt", 'a', 'native'); tic() fprintf(fid, " for ( m = 0 : 2 ) for ( k = 1 : length(stat) ) for ( l = 3 : length(img_list) ) Image \t In \t Out \t Corr. \n\n"); fprintf(fid, " %s \t %i \t %i \t %f \n", stat(k).img_name, stat(k).encoded_bit, stat(k).decoded_bit, stat(k).corr); % Reads the image img = imread(img_list(l).name); cd .. endfor fclose(fid); [ wr ] = pattern(key_seed, size(img,1), size(img,2)); -------------------- FIN DEL BLOQUE PRINCIPAL ------------------- Tema: Procesamiento Digital de Señales – Pag. 3 of 15 Guadalajara, México // lun 20 de abril de 2009. ITESO Marca de agua Digital en Imágenes Instituto Tecnológico y de Estudios Superiores de Occidente (ITESO), Periférico Sur Manuel Gómez Morín 8585, Tlaquepaque, Jalisco, México, C.P. 45090. Departamento de Electrónica, Sistemas e Informática (DESI). Por: Omar X. Avelar -------------------------------- FUNCIONES ----------------------------- ## Copyright (C) 2009 Omar X. Avelar ## Copyright (C) 2009 Omar X. Avelar ## ## ## Pattern key generator implemented with randn. ## Decodes the bit from the image. ## ## ## Usage: [ wm ] = key_encode( seed, M, N ) ## Usage: bit = bit_decode( img, pattern ) ## ## Detects if the image has been watermarked. ## function [ wr ] = pattern( seed, M, N ) function [ bit, corr ] = bit_decode( img, pattern ) # Key codification & pattern generation tU = +0.0070; % Threshold randn("state", seed); tL = -0.0070; wr = rand(M, N); r = corr2(double(img), double(pattern)); corr = r(1); endfunction if ( (r(1) < tU) && (r(1) > tL) ) % No watermark detected bit = 255; elseif ( r(1) > tU ) % Bit is 1 bit = 1; elseif ( r(1) < tL ) % Bit is 0 bit = 0; endif endfunction -------------------------- FIN DE FUNCIONES -----------------------Tema: Procesamiento Digital de Señales – Pag. 4 of 15 Guadalajara, México // lun 20 de abril de 2009. ITESO Marca de agua Digital en Imágenes Instituto Tecnológico y de Estudios Superiores de Occidente (ITESO), Periférico Sur Manuel Gómez Morín 8585, Tlaquepaque, Jalisco, México, C.P. 45090. Departamento de Electrónica, Sistemas e Informática (DESI). Por: Omar X. Avelar PRUEBAS Primero tenemos que mencionar que se definió un valor =4 . A continuación analizaremos la distribución de los valores de correlación de acuerdo a los valores codificados. (Fig. 3). Podemos ver claramente como se asemejan a una distribución normal, por lo que vamos a definir un valor de umbral para las diferentes codificaciones y así poderlo detectar en el decodificador. 0 =−0.0070 1 =−0.0070 (5) En la siguiente pagina se analizara el efecto de escoger estos valores de umbral. Fig. 3: Distribuciones de las diferentes imágenes procesadas. Tema: Procesamiento Digital de Señales – Pag. 5 of 15 Guadalajara, México // lun 20 de abril de 2009. ITESO Marca de agua Digital en Imágenes Instituto Tecnológico y de Estudios Superiores de Occidente (ITESO), Periférico Sur Manuel Gómez Morín 8585, Tlaquepaque, Jalisco, México, C.P. 45090. Departamento de Electrónica, Sistemas e Informática (DESI). Con estos valores de umbral definidos (5) podemos pasar las imágenes en el programa automático y observar el archivo “Stats.txt” que este genera. A continuación observaremos los valores obtenidos con las 20 imágenes pruebas a blanco y negro que se encuentran en la sección de anexos. Image In Out Corr. testimage01.tif 0 0 -0.014128 testimage02.tif 0 0 -0.022887 testimage03.tif 0 0 -0.020510 testimage04.tif 0 0 -0.018478 testimage05.tif 0 255 -0.006438 testimage06.tif 0 0 -0.011071 testimage07.tif 0 0 -0.015194 testimage08.tif 0 0 -0.019834 testimage09.tif 0 0 -0.020243 testimage10.tif 0 0 -0.017172 testimage11.tif 0 0 -0.017550 testimage12.tif 0 0 -0.011824 testimage13.tif 0 0 -0.008177 testimage14.tif 0 0 -0.023926 testimage15.tif 0 0 -0.012137 testimage16.tif 0 0 -0.014092 testimage17.tif 0 255 -0.006963 testimage18.tif 0 0 -0.018826 testimage19.tif 0 0 -0.019438 testimage20.tif 0 0 -0.020555 testimage01.tif 1 1 0.010528 testimage02.tif 1 1 0.024137 testimage03.tif 1 1 0.021198 testimage04.tif 1 1 0.018957 testimage05.tif 1 1 0.008828 testimage06.tif 1 1 0.012375 testimage07.tif 1 1 0.020519 testimage08.tif 1 1 0.023374 testimage09.tif 1 1 0.016521 testimage10.tif 1 1 0.022550 testimage11.tif 1 1 0.011892 Por: Omar X. Avelar testimage12.tif 1 1 0.017850 testimage13.tif 1 1 0.018857 testimage14.tif 1 1 0.023428 testimage15.tif 1 1 0.013968 testimage16.tif 1 1 0.018137 testimage17.tif 1 1 0.012654 testimage18.tif 1 1 0.007821 testimage19.tif 1 1 0.016286 testimage20.tif 1 1 0.016741 testimage01.tif 2 255 -0.000574 testimage02.tif 2 255 -0.000450 testimage03.tif 2 0 -0.007543 testimage04.tif 2 255 -0.000816 testimage05.tif 2 0 -0.009640 testimage06.tif 2 255 -0.002610 testimage07.tif 2 255 -0.000353 testimage08.tif 2 255 0.006451 testimage09.tif 2 255 -0.000638 testimage10.tif 2 255 -0.006121 testimage11.tif 2 255 0.002998 testimage12.tif 2 255 0.002330 testimage13.tif 2 255 0.003684 testimage14.tif 2 255 -0.002376 testimage15.tif 2 255 0.004248 testimage16.tif 2 255 -0.001844 testimage17.tif 2 255 0.004413 testimage18.tif 2 255 -0.001296 testimage19.tif 2 255 -0.001803 testimage20.tif 2 255 0.004213 Explicación: 0 → 0 1 → 1 2 o 255 → Nada codificado Tema: Procesamiento Digital de Señales – Pag. 6 of 15 Guadalajara, México // lun 20 de abril de 2009. ITESO Marca de agua Digital en Imágenes Instituto Tecnológico y de Estudios Superiores de Occidente (ITESO), Periférico Sur Manuel Gómez Morín 8585, Tlaquepaque, Jalisco, México, C.P. 45090. Departamento de Electrónica, Sistemas e Informática (DESI). Analizando esa tabla podemos poner los resultados del experimento en la siguiente tabla (60 pruebas): Número de positivos falsos 2 Número de negativos falsos 2 Por: Omar X. Avelar Al definir los limites de la ecuación (5) en el decodificador y compararlos con esos limites marcados podemos ver que todavía nos encontramos cercanos a los valores y se encuentran entre ±3 y ±2 , lo cual en el peor de los casos nos daría un porcentaje de error máximo de 4.4 % . A continuación se mostraran ciertas imágenes para ver que tan perceptible es nuestra marca de agua. Ahora, separando las tres poblaciones de imágenes, analizaremos la desviación estándar de cada una en el valor de la correlación usado para nuestro decodificador. Tipo de codificación σ Sin marca de agua 0.00417280 0 0.00519380 1 0.00498250 Fig. 4: Distribución Gaussiana. Lo que indica que suponiendo una distribución Gaussiana, la probabilidad de salirnos de rango y encontrarnos con otra población estando en el limite de ±3 es de aproximadamente 0.2 % (Fig. 4). Tipo de codificación 3σ Media Sin marca de agua 0.0125 -0.00040 0 0.0155 -0.01597 1 0.0149 0.01683 Entonces nuestro limite para pasar de ±3 Sin marca de agua a 0 es: -0.0129 Sin marca de agua a 1 es: 0.01210 Tema: Procesamiento Digital de Señales – Pag. 7 of 15 Guadalajara, México // lun 20 de abril de 2009. ITESO Marca de agua Digital en Imágenes Instituto Tecnológico y de Estudios Superiores de Occidente (ITESO), Periférico Sur Manuel Gómez Morín 8585, Tlaquepaque, Jalisco, México, C.P. 45090. Departamento de Electrónica, Sistemas e Informática (DESI). Por: Omar X. Avelar IMPLEMENTACION DE 4 BITS El siguiente paso es ahora aplicar este algoritmo ahora incrementando el numero de bits a 4. Para esto; aplicaremos el mismo concepto pero seccionando la imagen en 4 cuadrantes, definiendo el orden de los bits de acuerdo al cuadrante en el que se encuentra. Bit_0 Bit_2 Bit_1 Bit_3 Donde Bit_0 es el LSB y el Bit_3 es el MSB. En la siguiente pagina se encuentra el código de la codificación de 4 Bits seccionada. Tema: Procesamiento Digital de Señales – Pag. 8 of 15 Guadalajara, México // lun 20 de abril de 2009. ITESO Marca de agua Digital en Imágenes Instituto Tecnológico y de Estudios Superiores de Occidente (ITESO), Periférico Sur Manuel Gómez Morín 8585, Tlaquepaque, Jalisco, México, C.P. 45090. Departamento de Electrónica, Sistemas e Informática (DESI). Por: Omar X. Avelar CÓDIGO ------------------------- BLOQUE PRINCIPAL -------------------------% Image watermarking algorithm wrb); stat(struct_count).decoded_bits = bit_decode4(wm_img, % for 256 px by 256 px grayscale % images. struct_count++; cd files; % % Images must be located in folder "/files" endfor % % endfor % by Omar X. Avelar toc() % April 8th, 2009 % cd .. % Generates the table file fopen("Stats.txt", 'w'); fid = fopen("Stats.txt", 'a', 'native'); clear all; fprintf(fid, " Image \t In \t Out\n\n"); for ( k = 1 : length(stat) ) clc; %%%%%%%%%%%%% Batch Testing %%%%%%%%%%%%% fprintf(fid, " %s \t %s \t %s \n", stat(k).img_name, stat(k).encoded_bits, stat(k).decoded_bits); cd files; img_list = dir; endfor fclose(fid); % No. of tests n_images = length(img_list) - 2; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% struct_length = (n_images)*3; struct_count = 1; % 2 Different random keys tested for each image tic() for ( j = 1 : 2 ) for ( l = 3 : length(img_list) ) % Reads the image img = imread(img_list(l).name); cd .. m = randint(1,1,15); [ wm_img, wrb ] = bit_pattern4(dec2bin(m,4), img); % Stores the data in a structure stat(struct_count).img_name = img_list(l).name; stat(struct_count).encoded_bits = dec2bin(m,4); -------------------- FIN DEL BLOQUE PRINCIPAL ------------------- Tema: Procesamiento Digital de Señales – Pag. 9 of 15 Guadalajara, México // lun 20 de abril de 2009. ITESO Marca de agua Digital en Imágenes Instituto Tecnológico y de Estudios Superiores de Occidente (ITESO), Periférico Sur Manuel Gómez Morín 8585, Tlaquepaque, Jalisco, México, C.P. 45090. Departamento de Electrónica, Sistemas e Informática (DESI). Por: Omar X. Avelar -------------------------------- FUNCIONES ----------------------------endswitch ## Copyright (C) 2009 Omar X. Avelar ## % Third bit switch(str2num(key(3))) ## 4 Bit encoder based on watermarks. ## case 0 ## Usage: [ wm_img ] = key_encode4( key, img ) ## wmR = -wrb; case 1 wmR = +wrb; function [ wm_img, wrb ] = bit_pattern4( key, img ) % Seed for pattern generation seed = [ 3571, 35742549198872617291353508656626642567, 1627, 359334085968622831041960188598043661065388726959079837 ] ; case 2 wmR = zeros(M, N); endswitch % Strength factor of the watermark alpha = 4; % Fourth bit switch(str2num(key(4))) % Key codification & pattern generation M = size(img,1); N = size(img,2); randn("state", seed); wrb = rand(M/2, N/2); case 0 wmR = vertcat(wmR,-wrb); case 1 wmR = vertcat(wmR,+wrb); % First bit switch(str2num(key(1))) case 0 case 2 wmR = vertcat(wmR,zeros(M, N)); endswitch wmL = -wrb; case 1 wm = horzcat(wmL,wmR); wmL = +wrb; case 2 wa = alpha.*wm; wmL = zeros(M, N); wm_img = uint8(img + wa); endswitch % Second bit endfunction switch(str2num(key(2))) case 0 wmL = vertcat(wmL,-wrb); case 1 wmL = vertcat(wmL,+wrb); case 2 wmL = vertcat(wmL,zeros(M, N)); Tema: Procesamiento Digital de Señales – Pag. 10 of 15 Guadalajara, México // lun 20 de abril de 2009. ITESO Marca de agua Digital en Imágenes Instituto Tecnológico y de Estudios Superiores de Occidente (ITESO), Periférico Sur Manuel Gómez Morín 8585, Tlaquepaque, Jalisco, México, C.P. 45090. Departamento de Electrónica, Sistemas e Informática (DESI). ## Copyright (C) 2009 Omar X. Avelar Por: Omar X. Avelar bit(2) = 1; ## ## Decodes the bits watermarked in the image. elseif ( r(1) < tL ) % Bit is 0 ## ## Usage: bit = bit_decode4( img, pattern ) bit(2) = 0; function [ bits ] = bit_decode4( img, pattern ) tU = +0.0070; % Threshold tL = -0.0070; endif % Third bit r = corr2(double(img(M/2+1:M,1:N/2)), double(pattern)); corr(3) = r(1); % Four correlation figures must be calculated per image M = size(img,1); N = size(img,2); if ( (r(1) < tU) && (r(1) > tL) ) % First bit % No watermark detected bit(3) = 8; r = corr2(double(img(1:M/2,1:N/2)), double(pattern)); corr(1) = r(1); if ( (r(1) < tU) && (r(1) > tL) ) elseif ( r(1) > tU ) % No watermark detected bit(1) = 8; elseif ( r(1) > tU ) bit(3) = 1; elseif ( r(1) < tL ) % Bit is 1 bit(1) = 1; elseif ( r(1) < tL ) % Bit is 1 % Bit is 0 bit(3) = 0; endif % Bit is 0 % Fourth bit r = corr2(double(img(M/2+1:M,N/2+1:N)), double(pattern)); bit(1) = 0; corr(4) = r(1); endif if ( (r(1) < tU) && (r(1) > tL) ) % Second bit % No watermark detected bit(4) = 8; r = corr2(double(img(1:M/2,N/2+1:N)), double(pattern)); corr(2) = r(1); if ( (r(1) < tU) && (r(1) > tL) ) elseif ( r(1) > tU ) % No watermark detected bit(2) = 8; elseif ( r(1) > tU ) bit(4) = 1; elseif ( r(1) < tL ) % Bit is 1 % Bit is 1 % Bit is 0 bit(4) = 0; Tema: Procesamiento Digital de Señales – Pag. 11 of 15 Guadalajara, México // lun 20 de abril de 2009. ITESO Instituto Tecnológico y de Estudios Superiores de Occidente (ITESO), Periférico Sur Manuel Gómez Morín 8585, Tlaquepaque, Jalisco, México, C.P. 45090. Departamento de Electrónica, Sistemas e Informática (DESI). Marca de agua Digital en Imágenes Por: Omar X. Avelar endif s = num2str(bit); bits = strcat(s(1),s(9),s(5),s(13)); corrs = corr; endfunction -------------------------- FIN DE FUNCIONES ------------------------ Tema: Procesamiento Digital de Señales – Pag. 12 of 15 Guadalajara, México // lun 20 de abril de 2009. ITESO Marca de agua Digital en Imágenes Instituto Tecnológico y de Estudios Superiores de Occidente (ITESO), Periférico Sur Manuel Gómez Morín 8585, Tlaquepaque, Jalisco, México, C.P. 45090. Departamento de Electrónica, Sistemas e Informática (DESI). Por: Omar X. Avelar PRUEBAS testimage04.tif 0111 0111 Ya que nos encontramos usando el mismo algoritmo para codificar cada bit donde tenemos un error máximo de 4.4 % , por lo que al expenderlo y seccionarlo en una codificación de 4 Bits la probabilidad de tener un código erróneo aumenta a 17.6 % . Esto indica que la tasa de error por cada 10 imágenes es de alrededor de entre 1 y 2. testimage05.tif 0010 0010 testimage06.tif 0111 0111 testimage07.tif 0110 0110 testimage08.tif 0011 0x11 testimage09.tif 0011 0011 testimage10.tif 1101 1x01 testimage11.tif 0111 0111 testimage12.tif 0110 011x testimage13.tif 0000 0000 testimage14.tif 1101 1101 testimage15.tif 1000 1000 testimage16.tif 0110 0110 testimage17.tif 0100 0100 testimage18.tif 0110 0110 testimage19.tif 1010 1010 testimage20.tif 0010 0010 A continuación ponemos nuestro sistema a prueba para obtener los siguientes resultados: Image In Out testimage01.tif 0110 0110 testimage02.tif 0100 0100 testimage03.tif 1110 1110 testimage04.tif 1001 1001 testimage05.tif 0011 x011 testimage06.tif 1011 1011 testimage07.tif 0110 0110 testimage08.tif 0111 0111 testimage09.tif 0011 0011 testimage10.tif 1001 1001 testimage11.tif 0101 0101 testimage12.tif 1011 1011 testimage13.tif 1101 11xx testimage14.tif 0000 0000 testimage15.tif 0011 0011 testimage16.tif 0110 011x testimage17.tif 0101 0101 testimage18.tif 1101 1101 testimage19.tif 0000 0000 testimage20.tif 1110 1110 testimage01.tif 0011 001x testimage02.tif 0001 0001 testimage03.tif 1000 1000 Explicación: 0 1 x → 0 → 1 → Bit erróneo De esta tabla experimental podemos sacar lo siguiente: Numero de muestras 40 Enumero de errores 7 Lo que nos da como resultado un porcentaje de errores de 17.5 % contra el máximo precedido de 17.6 % . Tema: Procesamiento Digital de Señales – Pag. 13 of 15 Guadalajara, México // lun 20 de abril de 2009. ITESO Marca de agua Digital en Imágenes Instituto Tecnológico y de Estudios Superiores de Occidente (ITESO), Periférico Sur Manuel Gómez Morín 8585, Tlaquepaque, Jalisco, México, C.P. 45090. Departamento de Electrónica, Sistemas e Informática (DESI). A continuación se presentara unas imágenes con marca de agua de 4 Bits en comparación con la original para ver que tan perceptible es. Por: Omar X. Avelar Para determinar que tan perceptible era la marca de agua, se le pregunto a 9 individuos* de diferentes edades y sexo si podrían notar diferencias entre las 6 imágenes presentadas en el reporte y los resultados fueron los siguientes: Las veo iguales Si veo diferencia 1 Bit 24 imágenes 3 imágenes 4 Bit 23 imágenes 4 imágenes *Cada individuo analizo 6 pares de imágenes sabiendo que debería de buscar diferencias entre ellas. Tema: Procesamiento Digital de Señales – Pag. 14 of 15 Guadalajara, México // lun 20 de abril de 2009. ITESO Instituto Tecnológico y de Estudios Superiores de Occidente (ITESO), Periférico Sur Manuel Gómez Morín 8585, Tlaquepaque, Jalisco, México, C.P. 45090. Departamento de Electrónica, Sistemas e Informática (DESI). Marca de agua Digital en Imágenes Por: Omar X. Avelar CONCLUSIONES Una gran limitación del algoritmo implementado aquí es que por cada bits que se le quiera agregar basado en este algoritmo presenta un incremento directo en la tasa de error de 4.4 % en el peor de los casos. Esto vuelve el algoritmo bastante limitado y se deben buscar otras alternativas como seria trabajar en la frecuencia con la DCT. Otra limitación que me encontré en el algoritmo es al trabajar con imágenes con un gran numero de píxeles en blanco o negro ya que al trabajar cerca de los niveles de saturación de la imagen y sumarle o restarle algo puede ser un poco mas perceptible. Tema: Procesamiento Digital de Señales – Pag. 15 of 15 Guadalajara, México // lun 20 de abril de 2009.