Waasasasasasasas

Solo disponible en BuenasTareas
  • Páginas : 89 (22104 palabras )
  • Descarga(s) : 0
  • Publicado : 8 de febrero de 2012
Leer documento completo
Vista previa del texto
Transformada de Wavelet

Práctica 2a: Introducción a la transformada Wavelet.
Introducción.
En esta primera parte de la práctica realizaremos la transformada Wavelet de primer nivel de una imagen. El objetivo es ilustrar, de forma interactiva, el proceso de transformación y antitransformación de la imagen, comprobando que en el dominio transformado, los niveles de gris se concentran en áreasde la imagen muy reducidas de manera que pueden codificarse de forma muy eficiente. Utilizaremos unicamente una transformada de primer nivel en una imagen en blanco y negro para concentrarnos en los aspectos más significativos de la transformación y del análisis de las imágenes resultantes. En la práctica, para conseguir factores de compresión significativos, es conveniente utilizar latransformada en varias etapas. El ejercicio cubre sólo los aspectos más elementales de la codificación mediante wavelets, dejando los aspectos como cuantificación, SNR multiescala y resolución multiescala para una segunda parte de la práctica que se realizará con un programa de codificación mediante wavelets cerrado.
Carga y visualización de la imagen a procesar.
Realizaremos las pruebas con una imagen muypopular (Lena) en blanco y negro. La imagen está en formato bitmap con una resolución de 256x256 en el directorio de la práctica y con el nombre Pamela2.bmp. Las siguientes instrucciones realizan la carga de la imagen, la convierten a niveles de intensidad entre 0 (negro) y 1 (blanco) y la representan en pantalla.
[nom,path]=uigetfile('*.bmp');
a=imread([path,nom]);
b=double(a);b=b/max(max(b));
imshow(b);
Primera etapa de la transformada directa.
Recordemos que el diagrama de bloques para la descomposición en subbandas de la imagen es:

donde intervienen los filtros base h1(n) y h2(n) que pueden interpretarse como un filtro paso bajo y uno paso alto respectivamente. En este esquema, interpretaremos la dirección 'm' como la horizontal y la 'n' como la vertical, de modo quelas matrices que representan las imágenes estarán indexadas como u(n,m) - n: fila, m: columna. Los símbolos de diezmado se indican con una flecha hacia abajo, especificando la dirección en la que se realiza la reducción de las imágenes. Los filtros h1 y h2 pueden ser cualesquiera que cumplan las condiciones exigidas por la transformada wavelet y que, por tanto, permitan recuperar la imagen originala partir de las imágenes transformadas. La pareja de filtros que se utiliza más a menudo pertenecen a la familia de Daubechies y pueden expresarse (en la dirección m - horizontal) como:
h1=[1/sqrt(2),1/sqrt(2)];
h2=[1/sqrt(2),-1/sqrt(2)];
En el primer caso, se trata de un filtro paso bajo de 9 coeficientes y simétrico. h2 es el filtro paso alto, que en este caso tiene sólo 3 coeficientes yes también simétrico.
Las imágenes en las salidas del primer bloque de filtros, antes de realizar el diezmado pueden calcularse como:
bh1=filter2(h1,b);
bh2=filter2(h2,b);
Obsérvese que las dos imágenes son una versión filtrada de la imagen original. En el primer caso, se ha realizado un suavizado en la dirección horizontal mientras en el segundo se han enfatizado los contornos verticales(filtro paso alto en la dirección horizontal).
figure(1); imshow(bh1/max(max(bh1)));
figure(2); imshow(bh2+0.5);
Nótese que debido a las características del filtrado, en la imagen de la banda de alta frecuencia se representa el cero como el nivel de gris medio. La imagen de baja frecuencia se normaliza debido a que el filtro paso bajo tiene una ganancia distinta de la unidad. La descomposiciónde la imagen original en estas dos subimágenes permite reducir la frecuencia de muestreo en la dirección horizontal sin que se produzca, como veremos posteriormente, pérdida de información. El diezmado de las dos imágenes se realiza con las siguientes instrucciones:
bh1m=bh1(:,1:2:256);
bh2m=bh2(:,1:2:256);
figure(1); imshow(bh1m/max(max(bh1m)));
figure(2); imshow(bh2m+0.5);
Nótese que...
tracking img