Professional Documents
Culture Documents
\
|
|
.
(
(
=
:=
Universidad de Mendoza Dr. Ing. Jesus Ruben Azor Montoya
Catedra Analisis de Seales 8
para u0,...M-1 y v0,... N-1 y,
I
x y ,
0
M 1
u 0
N 1
v
F
u v ,
exp 1j 2 u
x
M
v
y
N
+
|
\
|
|
.
(
(
=
:=
para x0,...M-1 e y0,... N-1.
En las expresiones anteriores se ha considerado que se usa un muestreo con distinto
paso en la direccion de x, x, y en la direccion de y, y,. Asimismo, el numero de
muestras tomadas segun la direccion de x es M, y el numero siguiendo la direccion de y
es N. Iguales comentarios se pueden aplicar a la Iuncion F
u,v
.
Importancia de la fase y magnitud
La ecuacion indica que la FT de una imagen puede ser compleja. Esto se ilustra debajo
en las Figuras 4a-c.
La Figura 4a muestra la imagen original a|m,n|, la Figura 4b la magnitud en una Iorma
escalada como log(,A,,), y la Figura 4c la Iase ,.
Figure 4a Figure 4b Figure 4c
Original log(,A(,),) ,
Tanto las Iunciones Iase como magnitud son necesarias para la reconstruccion completa
de una imagen desde su transIormada de Fourier. La Figura 5a muestra que sucede
cuando la Figura 4a es restaurada solamente sobre la base de la inIormacion de
magnitud y la Figura 5b muestra cuando Figure 4a es restaurada solamente sobre la base
de inIormacion de Iase.
Figure 5a Figure 5b
, 0 A(,)constante
Ni la inIormacion de magnitud ni la de Iase es suIiciente para restaurar la imagen. La
imagen de solo magnitud (Figura 5a) es irreconocible y tiene severos problemas de
Universidad de Mendoza Dr. Ing. Jesus Ruben Azor Montoya
Catedra Analisis de Seales 9
rango dinamico. La imagen de solo Iase (Figura 5b) es escasamente reconocible, esto es
severamente degradada en calidad.
Seales circularmente simtricas
Una seal arbitraria a(x,v) siempre puede ser escrita en un sistema de coordenadas
polares como a(r, ). Cuando la seal 2D exhibe una simetria circular esto signiIica
que:
donde r
2
x
2
v
2
y tan() v/x. Una gran cantidad de sistemas Iisicos tales como las
lentes exhiben simetria circular, es util ser capaz de calcular una representacion
apropiada por Fourier.
La FT A(u, v) puede ser escrita en coordenadas polares y luego, para una seal
circularmente simetrica, rescribirla como una transformada Hankel.
donde
y J
o
(*) es una Iuncion de Bessel de primera clase
de orden cero.
La transformada Hankel inversa esta dada por:
La FT de una seal 2D circularmente simetrica es una Iuncion solo de la Irecuencia
radial,
2 n
(
(
=
:=
donde
C u ( ) iI u 0
1
2
, 1 ,
|
\
|
|
.
:=
Cada elemento de la lista transIormada S
u
es el producto interno (escalar) de la
lista s
x
y el vector base. Los Iactores constantes son elegidos de modo que los vectores
base sean ortogonales y normalizados. Los 8 vectores base para n8 se muestran en la
Iigura 1.
La DCT puede ser escrita como el producto de un vector (la lista de entrada) y la
matriz ortogonal de dimensiones n x n cuyas Iilas son los vectores base.
Esta matriz, para n8 puede ser computada como sigue (y veriIicar su
ortogonalidad):
C u ( ) iI u 0
1
2
, 1 ,
|
\
|
|
.
:=
x 0 n 1 .. := u 0 n 1 .. :=
I
x u ,
2
n
C u ( ) cos 2 x 1 + ( ) u
2 n
(
(
:=
Luego, el producto entre la lista y la matriz de bases:
s
T
I 0.776 0.373 0.185 0.012 0.325 0.993 0.56 0.625 ( ) =
y el vector transIormado:
S
T
0.776 0.373 0.185 0.012 0.325 0.993 0.56 0.625 ( ) =
Universidad de Mendoza Dr. Ing. Jesus Ruben Azor Montoya
Catedra Analisis de Seales 17
A continuacion se muestra la matriz base y veriIicacion de la ortogonalidad:
I
0.354
0.354
0.354
0.354
0.354
0.354
0.354
0.354
0.49
0.416
0.278
0.098
0.098
0.278
0.416
0.49
0.462
0.191
0.191
0.462
0.462
0.191
0.191
0.462
0.416
0.098
0.49
0.278
0.278
0.49
0.098
0.416
0.354
0.354
0.354
0.354
0.354
0.354
0.354
0.354
0.278
0.49
0.098
0.416
0.416
0.098
0.49
0.278
0.191
0.462
0.462
0.191
0.191
0.462
0.462
0.191
0.098
0.278
0.416
0.49
0.49
0.416
0.278
0.098
|
\
|
|
|
|
|
|
|
|
|
.
=
I I
T
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
|
\
|
|
|
|
|
|
|
|
|
.
=
Representando graIicamente las Iilas de la matriz f, se obtienen las imagenes de
la Figura 1
Cada vector base corresponde a una sinusoide de una cierta Irecuencia.
La lista s
x
puede ser recuperada desde su transIormada S
u
aplicando la TransIormada
Inversa Coseno (IDCT):
s
x
2
n
0
n 1
u
C u ( ) S
u
cos 2 x 1 + ( ) u
2 n
(
(
=
:=
para x0,.,n-1
Esta ecuacion expresa a s como una combinacion lineal de vectores base. Los
coeIicientes son los elementos de la transIormada, S, la cual puede ser considerada
como reIlejando la cantidad de cada Irecuencia presente en la entrada s.
La Iuncion Matlab dct() permite hallar esta transIormada unidimensional. Si se
ejecuta:
~~ dct(|2 3 4 1|)
ans
5.0000 0.3827 -2.0000 0.9239
La DCT se puede calcular a partir de la DFT (TransIormada Discreta de
Fourier): primero se crea una nueva lista extrayendo los elementos pares, seguida por
Universidad de Mendoza Dr. Ing. Jesus Ruben Azor Montoya
Catedra Analisis de Seales 18
los elementos impares invertidos. Luego multiplicando la DFT de esta lista re-ordenada
por los asi llamados 'Iactores enroscados y se toma la parte real.
0 5
0.353
0.3535
0.354
I
0 ( )
( )
x
x
0 5
0.5
0.5
I
1 ( )
( )
x
x
0 5
0.5
0.5
I
2 ( )
( )
x
x
0 5
0.5
0.5
I
3 ( )
( )
x
x
0 5
0.5
0.5
I
4 ( )
( )
x
x
0 5
0.5
0.5
I
5 ( )
( )
x
x
0 5
0.5
0.5
I
6 ( )
( )
x
x
0 5
0.5
0.5
I
7 ( )
( )
x
x
Figura 1 Los ocho vectores base para la TransIormada Coseno Discreta de longitud 8.
LA TRANSFORMADA COSENO BI-DIMENSIONAL
La DCT unidimensional es util en procesamiento de seales de una dimension
tales como Iormas de onda de voz. Para analisis bidimensional de seales (2D) tales
como las imagenes, se necesita una version 2D de la DCT. Para una matriz s de
dimensiones n x m, la DCT 2D se calcula de una Iorma simple: la DCT 1D se aplica a
cada Iila de s y luego a cada columna del resultado. Asi la transIormada de s esta dada
por:
S
u v ,
2
n m
C u ( ) C v ( )
0
m 1
y 0
n 1
x
s
x y ,
cos
2 x 1 + ( ) u
2 n
(
(
cos
2 y 1 + ( ) v
2 m
(
(
=
:=
con u0,.,n y v0,.,m
donde C( (( (u) = ) = ) = ) = 2
-1/2
para u0 y C(u)1 para otro caso
Ya que la DCT 2D puede ser calculada aplicando las transIormadas 1D
separadamente a las Iilas y columnas, se dice que la DCT 2D es separable en las dos
dimensiones
Como en el caso unidimensional, cada elemento S
u,v
de la transIormada es el
producto interno de la entrada y una Iuncion base, pero en este caso, las Iunciones base
Universidad de Mendoza Dr. Ing. Jesus Ruben Azor Montoya
Catedra Analisis de Seales 19
son matrices n x m. Cada matriz base bidimensional es el producto externo de los dos
vectores base unidimensionales.
Cada matriz base puede ser pensada como una imagen. Las 64 imagenes base en
el arreglo se muestran en la Iigura 2.
Figura 2 El arreglo 8 x 8 de imagenes base para la Transformada Coseno Discreta
bidimensional. Cada matri: base esta caracteri:ada por una frecuencia espacial
hori:ontal v vertical. Las matrices mostradas aqui estan organi:adas de i:quierda a
derecha v del fondo a arriba en el orden de frecuencias crecientes.
Para ilustrar la transIormada 2D, se aplicara a una imagen 8 x 8 de la letra A:
Como en el caso 1D, es posible expresar la DCT 2D como un arreglo de
productos internos (una contraccion de tensor).
\
|
|
|
|
|
|
|
|
|
.
:=
ajusta a blancos y negros:
Universidad de Mendoza Dr. Ing. Jesus Ruben Azor Montoya
Catedra Analisis de Seales 20
s
i j ,
iI s
i j ,
0 0 , 255 , ( ) := WRITEBMP "c:\winmcad\a.bmp"
( )
s :=
n rows s ( ) := m cols s ( ) := u 0 n 1 .. := v 0 m 1 .. :=
halla la DCT:
S
u v ,
2
n m
C u ( ) C v ( )
0
m 1
y 0
n 1
x
s
x y ,
cos
2 x 1 + ( ) u
2 n
(
(
cos
2 y 1 + ( ) v
2 m
(
(
=
:=
escribe el resultado a archivo:
WRITEBMP "c:\winmcad\a1.bmp"
( )
S :=
Para determinar la TransIormada Discreta Coseno Inversa (IDCT) se utiliza la siguiente
expresion:
x 0 rows S ( ) 1 .. := y 0 cols S ( ) 1 .. :=
S
u v ,
2
n m
C u ( ) C v ( )
0
m 1
x 0
n 1
y
s
x y ,
cos
2 x 1 + ( ) u
2 n
(
(
cos
2 y 1 + ( ) v
2 m
(
(
=
:=
Los pixeles en la imagen DCT describen la proporcion en que cada Iuncion base
bidimensional esta presente en la imagen de entrada. Los pixeles estan ordenados como
arriba, con Irecuencia horizontal y vertical creciendo desde izquierda a derecha y desde
el Iondo hacia el tope. El pixel mas brillante en la esquina inIerior izquierda es conocido
como el termino DC, con Irecuencia 0,0}. Es el promedio de los pixeles en la entrada,
y es tipicamente el coeIiciente mas grande en la DCT de imagenes 'naturales.
Ejemplo: Dada la imagen c:\winmcad\rebe.bmp se transIorma en una matriz con:
d READBMP "c:\winmcad\rebe.bmp"
( )
:=
WRITEPRN "c:\winmcad\rebe.prn"
( )
d :=
para que pueda ser leida por el programa Matlab:
function coseno(x,y)
% Esta funcion permite anular x columnas e y filas de la Transformada
% Discreta Coseno de la imagen y luego antitransformar
load c:\winmcad\rebe.prn % Lee archivo ASCII
coseno1=rebe;
dime=size(coseno1);m=dime(1);n=dime(2); % Halla las dimensiones de la
matriz
A=dct2(coseno1); % Halla la DCT
% Anula y filas y x columnas
if x~= 0,
if y~= 0,
for i=m-x:m,
for j=n-x:n,
A(i,j)=0;
end
end
end
end
B=idct2(A); % Antitransforma
Universidad de Mendoza Dr. Ing. Jesus Ruben Azor Montoya
Catedra Analisis de Seales 21
save c:\winmcad\a1.txt B -ascii; % Salva resultado como matriz ASCII
Imagenes con:
coseno(0,0) coseno(100,100) coseno(200,200)