Documentos de Académico
Documentos de Profesional
Documentos de Cultura
WAVELET
ING. RODOLFO QUIJADA
Caracas-Venezuela
E-mail: rodolfoquijada@hotmail.com
RESUMEN
Las imgenes requieren recursos substanciales del almacenaje y la transmisin, as la compresin de la imagen es
ventajosa para reducir estos requisitos. Este informe cubre un ciertos aspectos del anlisis de wavelets, compresin
de datos y cmo las stas se pueden utilizar para la compresin de la imagen. Una investigacin en el proceso y los
problemas implicados con la compresin de la imagen fue hecha y los resultados de esta investigacin se discuten.
Su utiliz las herramientas de Matlab y se encontr que el nivel local de umbral tuvo una influencia extremadamente
mejor en los resultados de la compresin que las estrategias que consideran el nivel de umbral general.
ABSTRACT
Images require substantial storage and transmission resources, thus image compression is advantageous to reduce
these requirements. The report covers some background of wavelet analysis, data compression and how wavelets can
be used for image compression. An investigation into the process and problems involved with image compression
was made and the results of this investigation are discussed. We used the wavelets matlab tool kits and It was
discovered that local thresholding was had an extremely better influence of compression results over the general
thresholding strategies
INTRODUCCIN
A menudo las seales que deseamos procesar
estn en el dominio del tiempo, pero para
procesarlas ms fcilmente se requiere otro
tipo informacin, tal como el plano de la
frecuencia. Transformaciones matemticas
traducen la informacin de seales en
diversas representaciones. Por ejemplo, la
transformada de Fourier convierte una
seal entre el tiempo y el dominio de la
frecuencia, tales que las frecuencias de una
seal pueden ser observadas. Sin embargo la
transformada de Fourier
no puede
proporcionar la informacin en la cuales
ciertas frecuencias ocurren en momentos de
tiempo especfico de la seal, ya que
frecuencia
y
tiempo
son
vistos
independientemente. Para solucionar este
(2)
h [n ]
x, y
g [n ]
H x, y
h [n ]
V x,y
g [n ]
D x, y
f [ x ,y ]
g [n ]
h [n ]
E je x . F ila s
E je y . C o lu m n a s
(x,y),
(x,y) y diagonal
espacio: horizontal
(x,y), vertical
(x,y)
I m a g e n O r ig in a l
1 E ta p a
2 E ta p a
3 E ta p a
H=
(1)
k o
Para
obtener el siguiente nivel de
descomposicin
la
subimagen
se
descompone una vez ms, tal como puede
observarse en la siguiente figura.
N 1
x
n 0
CONSERVACIN Y COMPACTACIN
DE LA ENERGA Y DE LA ENTROPA
Una caracterstica importante del anlisis de
wavelet es la de conservar la energa y la
entropa. La energa se define como la suma
de los cuadrados de los valores del pxel,
( n)
L 1
(2)
l 0
completamente en el dominio de la
transformada.
La transformada wavelet ortogonal tiene
algunos inconvenientes que no la hacen
demasiado ideal para ser usadas en un
sistema de compresin. Uno de los
inconvenientes se puede ver claramente en la
Ecuacin (2), donde se el nmero total de
coeficientes de entrada, N, no tiene porque
ser igual que el nmero total de coeficientes
de la wavelet, L. En general L es mayor que
N y la transformada wavelet aumenta el
nmero de coeficientes. Considera una seal
de longitud N (par) y filtros wavelet de
tamao L (par). Las salidas de los filtros
tienen longitud L+1-N y la salida al hacer el
submuestreo tendr longitud (L+N)/2. Por lo
tanto, la seal original de longitud N da lugar
a un total de L+N coeficientes wavelets
despus de un nivel de transformacin. Si
aumentamos el nmero de niveles de
descomposicin el problema se agrava.
En el proceso de imagen hay 256 niveles de
la intensidad (escalas) de gris. 0 es negro y
255 es blanco. Cada nivel es representado
por un nmero binario 8-bit as que el negro
es 00000000 y el blanco es 11111111. Una
imagen se puede por lo tanto pensar en como
rejilla de los pixeles, donde cada pixel se
puede representar por el valor binario 8-bit
para una escala de gris. La resolucin de
una imagen est dada por los pixeles por
pulgada cuadrada (es decir, 500dpi significa
que un pixel es 1/500ava parte de una
pulgada).
Para digitalizar una imagen cuadrada de una
pulgada de 500 dpi requiere 8 x 500 x500 =
2 millones de bits del almacenaje. Usando
esta representacin est claro que la
compresin de datos de la imagen es una
gran ventaja si se van muchas imgenes a ser
almacenadas, a ser transmitidas o a ser
procesadas.
_
G 1
H=
(6) y
k o
r = b - H (7)
La tasa de comprensin estar dada por
K = b / H (8)
En esta trabajo se seleccionaron un rango de
11 imgenes contenidas en MATLAB. En el
anexo se puede observar el algoritmo
utilizado para calcula la Entropa y en la
Tabla 1, se leen los valores obtenidos. Las
imgenes fueron convertidas en matrices
usando la funcin imread de matlab. Por
ejemplo, para convertir el archivo de la
imagen saturn a una matriz X en matlab
X =double( imread(saturn.tif.));
G 1
Las imgenes
siguientes
resultantes
fueron
las
PARA
H
MSE Umbral dead
4.11 2.2048e 1.9446 0.03
40
-005
96
0.02
76
Imagen
Saturn
H
4.1140
CA1
CH1
CV1
CD1
Camera
m
an
CA1
CH1
CV1
CD1
MSE
1.2713
e-005
umbral
dead
3.0054
2.6618
0.0532
1.2660
1.2492
0.7996
7.0097
6.3190
6.4042
6.3190
0.0149
0.0178
0.0149
3.5808
e-005
3.8651
2.6319
2.6130
2.2375
Las imgenes
siguientes:
CONCLUSIONES
2.0698
3.0397
3.0617
3.0397
obtenidas
fueron
0.0407
0.0205
0.0252
0.0205
las
.
S. G. Chang, B Yu and M Vetterli. .Adaptive
Wavelet Thresholding for image Denoising
and Compression.. IEEE Transactions on
Image Processing, Vol. 9, No. 9, September
2000
Anexo 1
(Algoritmo clculo global de umbral)
%%%%ENTROPA%%%%%%%%%%%%%%%%%%%%%%%
close all
clear all
clc
I = imread('cameraman.tif');
I = im2double(I);
subplot(121);
imshow(I)
title('Original Image')
%%%%%%%%%%%%CALCULO DE ENTROPIA%%%%%%%
p=imhist(I);
p=p/sum(p);
p(find(p==0))=1;
logp= log2(p);
H= - sum(p.*logp)
%%%%%%%%%%%%%CALCULO DE UMBRAL%%%%%%%%%
threshold = 8/H %%%%%%%%GENERAL%%%%%%%%%%%%%
[cA1,cH1,cV1,cD1] = dwt2(I,'bior3.7');
ty=[cA1;cH1;cV1;cD1];
tty = ty;
dead=max(max(abs(tty)))*threshold/100
clear tty;
dyA1= cA1;
index=find(abs(dyA1)<=dead);
dyA1(index)=zeros(size(index));
density1= nnz(dyA1);
dyH1= cH1;
index=find(abs(dyH1)<=dead);
dyH1(index)=zeros(size(index));
density2= nnz(dyH1);
dyV1= cV1;
index=find(abs(dyV1)<=dead);
dyV1(index)=zeros(size(index));
density3= nnz(dyV1);
dyD1= cD1;
index=find(abs(dyD1)<=dead);
dyD1(index)=zeros(size(index));
density4= nnz(dyD1);
cy = idwt2(dyA1,dyH1,dyV1,dyD1,'bior3.7');
density = density1+density2+density3+density4;
subplot(122);, imshow(cy)
title('compresion ')
error=(I.^2-cy.^2);
MSE=sum(error(:))/prod(size(I))%%%%%ERROR%%%%%%%%%
Anexo 2
(Algoritmo clculo local de umbral
close all
clear all
clc
I = imread('cameraman.tif');
I = im2double(I);
subplot(1,2,1);
imshow(I)
title('Original Image')
%%%%%%%%%%%TRANSFORMADA WAVELET%%%%%
[cA1,cH1,cV1,cD1] = dwt2(I,'db1');
cy = idwt2(cA1,cH1,cV1,cD1,'db1');
%%%%%%%%%%%calculo de ENTROPIA%%%%%%%%%%
p=imhist(I);
p=p/sum(p);
p(find(p==0))=1;
logp= log2(p);
H= - sum(p.*logp)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
p=imhist(cA1);
p=p/sum(p);
p(find(p==0))=1;
logp= log2(p);
HcA1= - sum(p.*logp)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
p=imhist(cH1);
p=p/sum(p);
p(find(p==0))=1;
logp= log2(p);
HcH1= - sum(p.*logp)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
p=imhist(cV1);
p=p/sum(p);
p(find(p==0))=1;
logp= log2(p);
HcV1= - sum(p.*logp)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
p=imhist(cD1);
p=p/sum(p);
p(find(p==0))=1;
logp= log2(p);
HcD1= - sum(p.*logp)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
thresholdcA1=8/HcA1
dead=max(max(abs(cA1)))*thresholdcA1/100
dyA1= cA1;
index=find(abs(dyA1)<=dead);
dyA1(index)=zeros(size(index));
density1= nnz(dyA1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
thresholdcH1=8/HcH1
dead=max(max(abs(cH1)))*thresholdcH1/100
dyH1= cH1;
index=find(abs(dyH1)<=dead);
dyH1(index)=zeros(size(index));
density2= nnz(dyH1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
thresholdcV1=8/HcV1
dead=max(max(abs(cV1)))*thresholdcV1/100
dyV1= cV1;
index=find(abs(dyV1)<=dead);
dyV1(index)=zeros(size(index));
density3= nnz(dyV1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
thresholdcH1=8/HcH1
dead=max(max(abs(cH1)))*thresholdcH1/100
dyD1= cD1;
index=find(abs(dyD1)<=dead);
dyD1(index)=zeros(size(index));
density4= nnz(dyD1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
cy = idwt2(dyA1,dyH1,dyV1,dyD1,'db1');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
density = density1+density2+density3+density4;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
subplot(1,2,2);, imshow(cy)
title('compresion')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
error=(I.^2-cy.^2);
MSE=sum(error(:))/prod(size(I))