Está en la página 1de 15

COMPRESIN DE IMGENES UTILIZANDO LA TRANSFORMADA

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

problema se trabaja con la Short Term


Fourier transform (STFT), la cual introdujo
la idea de las ventanas a travs de las cuales
diversas partes de una seal se observan.
Para una ventana dada en tiempo las
frecuencias respectivas puede ser observadas
y mediadas. Sin embargo el Principio De la
Incertidumbre De Heisenburg.s establece as
que como la resolucin de la seal mejora en
el dominio de tiempo, mediante el enfoque
de zoom en diferentes secciones,
la
resolucin en la frecuencia desmejora.
Idealmente, un mtodo de multiresolucin es
necesario, y permite que ciertas partes de la
seal sean analizadas bien en el dominio del
tiempo, y otras partes tambin puedan ser
igualmente bien analizadas en el plano de
frecuencia. La capacidad y la magia del

anlisis de wavelet es exactamente esta


multiresolucin.
.Las imgenes contienen grandes cantidades
de informacin que requiera mucho espacio
de almacenamiento,
ancho de banda
considerable y tiempos largos de la
transmisin. Por lo tanto es ventajoso
comprimir
la
imagen
almacenando
solamente la informacin esencial necesaria
para reconstruir la imagen. Una imagen se
puede pensar en como matriz de los valores
del pxel (o intensidad). Para comprimir la
imagen, las redundancias se deben explotar,
por ejemplo, reas donde hay poco o nada
de cambio entre los valores del pxel. Por lo
tanto imgenes que tienen grandes las reas
del color uniforme tendrn redundancias
grandes, e inversamente imgenes que
tengan cierta frecuencia y cambios grandes
en color sern menos redundantes y ms
duras de comprimir.
Las tcnicas de transformadas tienen por
objetivo descorrelacionar los pxeles de la
imagen al proyectarla sobre otro dominio a
partir de un conjunto de funciones de base.
La idea general es que en el dominio
transformado la mayor parte de la
informacin se empaqueta en un nmero
menor de muestras, las cuales pueden ser
directamente almacenadas o codificadas
escalar o vectorialmente para lograr ms
compresin.
El anlisis de wavelet se puede utilizar para
dividir la informacin de una imagen en
subseales de aproximacin y de detalles de
ella misma. La subseal de aproximacin
muestra la tendencia general de los valores
de los pxel y
subseales de detalles
muestran los detalles o los cambios
verticales, horizontales y diagonales en la
imagen. Si estos detalles son muy pequeos
entonces pueden ser fijados a cero sin
perceptiblemente cambiar la imagen. El
valor debajo de el cual los detalles se
consideran bastante pequeos pueden ser
fijados a cero se conocen como el umbral
(threshold). Mientras mayor es el nmero de

ceros mayor es la compresin que puede ser


alcanzado. La cantidad de informacin
conservada por la imagen despus de que la
compresin y la descompresin se conoce
como la energa retenida y sta es
proporcionales a la suma de los cuadrados de
los valores del pxel.
Si la energa
conservada es el 100% entonces la
compresin es conocida como compresin
sin prdida (lossless)., y la imagen puede ser
reconstruida exactamente.
Esto ocurre
cuando es el valor de umbral se fije a cero,
significando que los detalles no se han
cambiado. Si algunos valores se cambian se
perder parte de la energa y sta se conoce
como compresin con prdidas (lossy).
Idealmente, durante la compresin el nmero
de ceros y la retencin de la energa ser tan
alta como sea posible. Sin embargo, como
se obtienen ms ceros se pierde ms energa,
se necesita encontrar de un equilibrio entre
las dos necesidades.
La primera parte del informe introduce el
fondo de wavelets y de la compresin ms
detalladamente. Esto es seguido por una
revisin de una investigacin prctica en
cmo la compresin se puede alcanzar con
wavelets y los resultados obtenidos. El
propsito de la investigacin era encontrar el
efecto del nivel de la descomposicin,
wavelet e imagen sobre el nmero de los
ceros y de la retencin de la energa y
entropa que podran ser alcanzados. Por
las razones de tiempo, el conjunto de
imgenes y de los niveles investigados
fueron mantenidas pequeas. Por lo tanto
solamente una familia de wavelets, las
wavelets de HAAR, fue utilizada.
WAVELETS Y MULTIRRESOLUCIN
La potencia de Waavelets proviene de su uso
en el anlisis multirresolucin. Ms que
examinar la seal completa a travs de una
misma ventana, partes diferentes de la onda
pueden ser vistas a travs de ventanas de
diferentes anchos. Las partes de alta

frecuencia de la seal usan ventanas


pequeas para obtener una buena resolucin
en tiempo, las partes de baja frecuencia de la
seal usan una ventana grande para obtener
una buena informacin en frecuencia. Una
cuestin importante que debemos notar es
que las ventanas tienen igual rea a pesar
de que se vare la altura y el ancho durante el
anlisis wavelet. El rea de las ventanas es
controlado por el principio de incertidumbre
de Heisnbergs.
De esta manera el Anlisis Discreto Wavelet
en dos dimensiones (DWT2) es realizado
usando el concepto de banco de filtros con
diferente frecuencia de corte:
(1)

Un filtro pasa-alto g[n]

(2)

Un filtro pasa-bajos h[n]

Estos filtros pasabajos h n y pasaltos


g n que actan primero en una direccin y
luego en la otra, se muestra en la siguiente
figura como la unidad bsica que realiza la
descomposicin en multiresolucin:

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

Figura 1: Estructura de filtros.


Visto desde una perspectiva bidimensional,
tal como se observa en la figura Nro. 2

Figura Nro. 2: Estructura de las subbandas.


La subbanda LL (del ingls Low, Low) o
( x, y ) , proviene de la aplicacin del
filtro de anlisis paso bajo en ambas
direcciones, la horizontal y la vertical. La
subbanda HL (del ingls High, Low) o

(x,y),

se obtiene aplicando el filtro

paso bajo en la direccin vertical y el filtro


paso alto en horizontal. Las otras subbandas,
se identificaran como LH (del ingls Low,

(x,y) y HH (del ingls High,


High) o (x,y), respectivamente. El
High) o

nivel D de la DWT se obtiene aplicando D


veces la DWT de la manera que se indica en
la Figura 5.6. Esto es, a la subbanda LL
producida por la primera aplicacin de la
DWT se le aplica otra vez la DWT y as
sucesivamente. Las subbandas producidas
por el paso d de la transformada se denotan
como LLd, HLd, LHd y HHd. Las subbandas

intermedias no tienen muestras por si


mismas, sino que son un nodo en el rbol y
podemos considerar que sus muestras son las
de las hojas de las ramas que cuelgan de l.
La descomposicin wavelet puede ser
interpretada
entonces
como
una
descomposicin de la imagen en un conjunto
de canales o bandas de frecuencia
independientes entre s y espacialmente
orientados. Mientras una banda (pasabajo)
contiene una versin borrosa de la imagen
original, las otras bandas resaltan la
informacin de alta frecuencia (bordes y
texturas). Pero ms importante an es que
esta ltima se encuentra separada en las
bandas de acuerdo a su ubicacin en el

(x,y) y diagonal

espacio: horizontal

Fig-3 Descomposicin de una imagen en tres niveles.

ANALISIS WAVELET 2D EN MATLAB


En MATLAB las imagines son tratadas
como seales bidimensionales y son
consideradas como matrices con N filas y M
columnas. En cada nivel de descomposicin
en la transformada wavelet los datos
horizontales son filtrados, de esta manera la
matriz de aproximacin y las de detalles que
se producen son filtradas sobre las columnas,
tal como se muestra en la siguiente figura:

(x,y), vertical
(x,y)

Al aplicar una descomposicin como la que


se muestra en la figura a una imagen
cualquiera, se obtiene una divisin en
sub-bandas como la que se muestra en la
figura Nro. 3:
Tal como se puede observar, en cada nivel se
obtienen
cuatro
subimgenes,
la
aproximacin y los detalles vertical,
horizontal y diagonal. En la siguiente figura
podemos observar
como a travs de
MATLAB, la imagen saturno se descompone
en el primer nivel. Vemos de esta manera
como con la transformada wavelet hemos
obtenido los cambios verticales, horizontales
y diagonales.

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

mientras que si una imagen tiene G niveles


de grises y la probabilidad de un nivel de
gris k es P(k), la entropa H est dada por:
G 1

H=

P(k ) log 2( P(k ))

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

La energa en la transformada wavelet de


una imagen es la suma de los cuadrados de
los coeficientes de transformada. Durante el
anlisis de wavelet la energa de una seal y
la entropa se divide entre la imagen de
aproximacin y las imgenes de los detalles,
pero tanto la energa total como la entropa
no cambian. Durante la compresin sin
embargo, se pierde la energa porque el
umbral (thresholding) cambia los valores de
los coeficientes y por lo tanto la versin
comprimida contiene menos energa.
Las transformadas wavelet originales
utilizadas
en
este
trabajo
fueron
implementadas usando wavelets ortogonales,
es decir, usando filtros ortogonales. Con los
filtros ortogonales, la transformada wavelet
puede ser vista como una proyeccin de la
seal de entrada en un conjunto de funciones
de base ortogonal. Si los filtros adems estn
normalizados la transformada wavelet
conserva la energa y la entropa. Para una
seal de entrada x[ n] de longitud N, la
propiedad de conservacin de la energa, la
cual es anloga a la relacin de Parseval,
puede ser vista como
_

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

La propiedad de conservacin de la energa


es conveniente para el diseo de los sistemas
de compresin ya que significa que la
distorsin cuadrtica introducida por la
cuantificacin de los coeficientes es igual a
la distorsin cuadrtica en la seal
reconstruida. Por lo tanto la propiedad de
conservacin de la energa simplifica el
diseo del compresor ya que el diseo del
cuantificador puede ser desarrollado

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

Segn [ 6 ] "los algoritmos de compresin


de imagen apuntan a quitar la redundancia
en los datos de una manera que haga posible
la reconstruccin de la misma."
Esto
significa bsicamente que los algoritmos de
la compresin de la imagen intentan explotar
redundancias en los datos; calculan qu
datos necesitan ser guardados para
reconstruir la imagen original y por lo tanto
que los datos se pueden ' eliminar'. Quitando
los datos redundantes, la imagen se puede
representar en un nmero ms pequeo de
bits, y por lo tanto puede ser comprimida
Pero, Qu es una informacin redundante?
La reduccin de redundancia se dirige a
eliminar la duplicacin en la imagen. Segn
Saha hay dos diversos tipos de redundancia
relevantes en las imgenes:
(i) Redundancia Espacial: correlacin entre
los pixeles vecinos.
(ii) Redundancia espectral: correlacin entre
diversos planos del color y las bandas
espectrales.
Donde hay alta correlacin, hay tambin alta
redundancia, as que puede no ser necesario
grabar los datos para cada pixel.
Para llevar a cabo la compresin
realizaremos lo siguientes pasos:
1. Encontramos alguna propiedad de la
imagen: histograma, entropa de la imagen,
funciones de correlacin etc., y luego
2. Encontramos una tcnica apropiada de la
compresin para una imagen de esas
caractersticas.

PROPIEDADES DE LOS DATOS DE LA


IMAGEN

P(k) = h(k) / MN (5)


De esta manera;

Con la finalidad de hacer comparaciones


significativas de diversas tcnicas de la
compresin de la imagen es necesario saber
las caractersticas de la misma.
Una
caracterstica es la entropa: una imagen
altamente correlacionada tendr una entropa
baja. Por ejemplo a frecuencias muy bajas,
una imagen altamente correlacionada ser
comprimida por muchas diversas tcnicas;
es ms la caracterstica de la imagen y no el
algoritmo de compresin que da las buenas
tasas de
compresin.
Tambin, un
algoritmo de compresin que es bueno para
algunas imgenes no ser necesariamente
bueno para todas las imgenes, sera mejor
si podramos decir lo que sera dada la mejor
tcnica de la compresin al tipo de imagen
que tenemos.
Una forma de calcular la entropa es
sugerida por [ 6 ]; Si una imagen tiene G
niveles de grises y la probabilidad del nivel
de gris k es P(k) la entropa H es:

G 1

H=

P(k ) log 2( P(k ))

(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

H = - P(k ) log 2( P (k )) (3)


k o

Y la redundancia de la informacin,r, es:


r = b - He (4)
en donde b es el menor nmero de bits para
cuantificar la imagen. La redundancia de la
informacin slo puede ser evaluada si se
tiene un buen estimado de la entropa de la
imagen, pero usualmente este no es el caso
debido a que muchas veces alguna
informacin estadstica no es conocidaUn
estimado de H puede ser obtenidoa partir del
histograma del nivel de gris.
Si h(k) es la frecuencia del nivel de gris k en
imagen de dimensiones MxN, entonces un
estimado de P(k) es:

Observando la imagen Saturn. podemos ver


que sta es altamente redundante comparado
a las otras imgenes con r = 3.886, por lo
que energa no se perder rpidamente
durante la compresin. No obstante los
cocientes de la compresin para las
imgenes no demuestran el mismo patrn,

ste es porque aunque puede haber


redundancia espacial entre los pixeles
vecinos, si el ndice binario es ms alto
entonces los valores de la intensidad
requeridos para aproximar la imagen ser
ms alta.
ESTRATEGIA
UTILIZADA
CALCULAR EL UMBRAL.

Las imgenes
siguientes

resultantes

fueron

las

PARA

De lo anteriormente expuesto, se realiz


primeramente un algoritmo en MATLAB,
Anexo 1, que calcula la entropa total de la
Transformada Wavelet y mediante la
ecuacin (8).
se calcul el coeficiente de compresin. El
umbral de compresin se calcul mediante la
expresin de matlab:
dead=max(max(abs(tty)))*thresh
old/100;
El error cuadrtico medio MSE se calcul
mediante la expresin de matlab:
Error = (I.^2-cy.^2);
MSE=sum(error(:))/prod(size(I));
(Donde I = Imagen original; cy = es la
Imagen reconstruida)
Tomando como ejemplo la imagen Saturn y
Cameraman, se obtuvo el siguiente
resultado:
imagen
Satur

H
MSE Umbral dead
4.11 2.2048e 1.9446 0.03
40
-005
96

Cameraman 7.00 6.8987e 1.1413


97
-005

0.02
76

Ahora bien, como en Matlab la transformada


wavelet de primer nivel est dada por la
siguiente expresin:
[cA1,cH1,cV1,cD1] = dwt2(I,'bior3.7');
donde: cA1, cH1,cV1,cD1 corresponden a la
aproximacin, la componente horizontal, la
componente vertical y la componente

diagonal respectivamente, calculamos la


Entropa de cada una de estas subimgenes
para as obter el umbral de compresin para
cada una de ellas. Este algoritmo en matlab
se encuentra en el anexo B y los resultados
son los siguientes:

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

La idea general de este proyecto era


investigar cmo las la transformada wavelet
se podran utilizar para la compresin de la
imagen. Creo que he alcanzado esto. He
ganado una comprensin de cules son las
waveles, de porqu se requieren y cmo
pueden ser utilizadas para comprimir
imgenes Tambin he ganado una
comprensin
general
de
cmo
la
descomposicin nivela, las wavelets y las
imgenes cambian la divisin de la energa y
de la entropa entre la aproximacin y
subbandas de detalles.
La importancia del valor de umbral en el
nivel de la entropa era algo de lo cual no
tena un aprecio antes de recoger los
resultados. Para ser ms especfico entenda
que el umbral (thresholding) tena un efecto
pero no alcanzaba a realizar el grado a el
cual dicho umbral podra cambiar la
distribucin de la entropa conservada y las
tasas de la compresin. Por lo tanto, cuando
la investigacin fue realizada su puso ms
atencin a elegir las wavelets, las imgenes
y los niveles de la descomposicin que la

estrategia de umbral (thresholding). Fijese


que al utilizar umbrales locales se diminuy
el MSE. Usar umbral (thresholding) global
no es incorrecto, l es una solucin
perfectamente vlida, el problema es que
dicho umbral global enmascar el efecto
verdadero
de los
niveles
de la
descomposicin en detalle, en los resultados.
Esto signific que el potencial verdadero de
una wavelet de comprimir una imagen radica
en tomar los niveles de entropa de cada
descomposicin
y calcular su tasa de
compresin.
De esta manera la investigacin entonces se
movi hacia un umbral ( thresholding) local
que result ser mejor que el global porque
cada subbanda de detalle tena su propio
umbral basado en los coeficientes que
contuvo de la entropa. Esto signific que
era ms fcil conservar entropa durante la
compresin.
Podemos decir tambin que la idea bsica
de aplicar la Transformada wavelet se hizo
para dividir la imagen en bandas, logrndose
que los pxeles de una banda estn
relacionados
entre
s,
pero
descorrelacionados con los de otras bandas.
Una de las ventajas de aplicar mtodos
transformados (entre ellos la wavelet), es
que los errores de cuantizacin producidos
por la misma transformacin y por la
codificacin de los pxeles se distribuyen
sobre toda la imagen al realizar la
transformada inversa. En particular, la
transformada wavelet presenta otras
ventajas:
Cada banda posee la informacin
centrada en un menor nmero de
coeficientes, por lo que resulta ms fcil
de codificar.
La aplicacin de la transformada wavelet
tiene una relacin de localizacin
tiempo-escala que la DCT y la STFT
(STFT: Short Time Fourier Transform)
no poseen, lo que permite analizar los

detalles de alta frecuencia sin perder la


informacin de baja frecuencia.
Como la transformada es aplicada sobre
toda la imagen, no se presentan los
problemas de distorsin tpicos de
aquellos esquemas que dividen en
bloques en el dominio de la imagen y
luego aplican alguna transformacin,
como es el caso de JPEG Error: Reference source not
found
.
Las bandas no slo poseen informacin
frecuencial sino tambin espacial, lo que
permite codificar de forma diferente cada
banda y explotar el efecto de
enmascaramiento del ojo humano.
La informacin contenida en las bandas
pasaaltos poseen gran cantidad de ceros,
por lo que pueden ser codificadas con
pocos bits o inclusive no ser codificadas
basado en el hecho de que son poco
visibles.
BIBLIOGRAFA
Walker, J.S. A Primer on Wavelets and
Their Scientific Applications .
Boca Raton, Fla. : Chapman & Hall/CRC,
1999
Robi Polikar, .The Wavelet Tutorial. .
http://engineering.rowan.edu/~polikar/WAV
ELETS/Wttutorial.html
Aboufadel, Edward. Discovering Wavelets,
by Edward Aboufadel and Steven Schliker.
New
York; Chichester : Wiley, 1999
.
Hubbard, Barbara Burke. The World
According to Wavelets. A.K Peters Ltd,
1995.
[5] Saha, Subhasis. .Image Compression .
from DCT to Wavelets : A Review.
http://www.acm.org/crossroads/xrds63/sahaimgcoding.html

[6] Sonka, M. Hiaual, V. Boyle, R. Image


Processing, Analysis and Machine Vision,
2nd edition.
Brooks/Cole Publishing Company.

Mulcahy, Colm. .Image compression using


the Haar wavelet transform.. Spelman
Science and Math Journal. Found at:
http://www.spelman.edu/~colm/wav.html

Misiti, M. Misiti, Y. Oppenheim, G. Poggi,


J-M. Wavelet Toolbox User.s Guide, Version
2.1. The Mathworks, Inc. 2000.

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

También podría gustarte