Análisis de
imágenes
digitales
TRANSFORMADAS BÁSICAS DE LA IMAGEN
• El concepto de descomposición en frecuencia se basa en las propiedades de
periodicidad de las señales trigonométricas del seno y coseno.
• Las funciones seno y coseno son señales periódicas con periodo T = 2π, de tal
manera que la señal se repite como cos(x)=cos(x+2πk), ∀k∈Ν0.
• La velocidad angular es una medida de la velocidad de rotación definida como:
DEFINICIONES BÁSICAS
ω = 2π
T = 2πf
donde T es el periodo (tiempo en dar un ciclo completo) y f es la frecuencia
(número de ciclos por unidad de tiempo) medida en Hertz (Hz), de modo que:
f = 1
T =
ω
• Las funciones seno y coseno oscilan en el rango [−1,+1], y se puede modificar su amplitud multiplicándolas por una constante A, de tal manera que quedan definidas como:
DEFINICIONES BÁSICAS
f(x) = A⋅cos(ωx) y f(x) = A⋅sin(ωx) 0 π 4 π 2 3π 4 π 5π 4 3π 2 7π 4 2π −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 ω A cos(x) sin(x) 0 0.125 0.250 0.375 0.500 0.625 0.750 0.875 1 f % Ejemplo en MATLABx = 0:0.01:1; % Variable independiente (tiempo)
k = 1; % Número de ciclos por segundo (Hz)
A = 1; % Amplitud de la función
w = 2*k*pi; % Velocidad angular
f1 = A*sin(w*x); % Evalúa función seno
f2 = A*cos(w*x); % Evalúa función coseno
% Gráfica de resultados figure('color',[1 1 1]);
plot(w*x,f1,'k',w*x,f2,'k-.'); set(gca,'xtick',0:pi:w);
xlim([0 w]); ylim([-A A]); legend('sin(x)','cos(x)');
• Si se considera el desplazamiento de la función coseno a lo largo del eje x en una distancia ϕ, denominada ángulo de fase, se tiene la siguiente expresión:
DEFINICIONES BÁSICAS
f(x) = cos(ωx − φ)• Considerando la fase, existen equivalencias entre las funciones seno y coseno, tal que:
sin(ωx) = cos(ωx − π 2) cos(ωx) = sin(ωx − π 2) 0 π 4 π 2 3π 4 π 5π 4 3π 2 7π 4 2π −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 ω A cos(x) sin(x) φ
• Los procesos de transformación consisten en descomponer un modelo de componentes ortogonales.
• La ortogonalidad se refiere a que la descomposición realizada tendrá información excluyente entre las componentes, es decir, la información contenida en la descomposición de una componente no se encontrará en ninguna otra componente.
• Las funciones seno y coseno son ortogonales, por lo que pueden ser utilizadas para construir funciones arbitrarias, por ejemplo:
DEFINICIONES BÁSICAS
A⋅cos(ωx) + B ⋅sin(ωx) = C ⋅cos(ωx − φ)
donde: C = A2 + B2 y φ = tan−1 B A ⎛ ⎝⎜ ⎞ ⎠⎟
DEFINICIONES BÁSICAS
1 2⋅cos(x) 1 2⋅sin(x) 2 2 ⋅cos(x − π4) 0 π 4 π 2 3π 4 π 5π 4 3π 2 7π 4 2π 0 ω − 2 2 2 2 A = 1 2 B = 1 2 sin(ωx) cos(ωx) A⋅cos(ωx)+ B⋅sin(ωx) φ• La relación entre las funciones coseno y seno y la función exponencial compleja está determinada por la fórmula de Euler:
DEFINICIONES BÁSICAS
ejφ = cosφ + j sinφ
• La parte real (Re) e imaginaria (Im) quedan determinados por:
Re(ejφ) = cosφ = ejφ +e−jφ
2
y Im(ejφ) = sinφ = ejφ −e−jφ
2j • La magnitud se define como:
ejφ = Re2(ejφ)+ Im2(ejφ)
• El ángulo de fase se define como: φ = tan−1 ⎡Im(ejφ) ⎢ ⎤⎥ Im cos(φ)+ jsin(φ) φ Re sin(φ) cos(φ) 1 1
• Algunas tareas de AID son más fáciles de hacer al transformar la imagen del dominio espacial a otro dominio, realizar dichas tareas en ese nuevo dominio y aplicar una transformación inversa para regresarla al dominio espacial.
TRANSFORMADAS DE IMÁGENES
Problema en el dominio de la transformada Problema en el dominio espacial Solución en el dominio espacial Solución en el dominio de la transformada Solución fácil Solución difícil Integral de• Ejemplo: filtrado de ruido periodico.
TRANSFORMADAS DE IMÁGENES
Procesa
mien
to
R R−1Dominio espacial Dominio de la transformada Dominio espacial
• Las transformadas lineales para imágenes, denotadas T(u,v), pueden expresarse de la forma general como:
TRANSFORMADAS DE IMÁGENES
T
(
u
,
v
)
=
f
(
x
,
y
)
r
(
x
,
y
,
u
,
v
)
y=0 N−1∑
x=0 M−1∑
Imagen transformada Imagen de entrada Kernel de transformación directocon u=0,1,…,M−1 y v=0,1,…,N−1, donde M y N son el ancho y alto de la
imagen respectivamente, x e y son las variables espaciales, y u y v son las variables de la transformada.
• Dado T(u,v) se puede recuperar f(x,y) usando la transformada inversa de T(u,v) como:
f
(
x
,
y
)
=
T
(
u
,
v
)
s(
x
,
y,
u
,
v
)
v=0 N−1∑
u=0 M−1∑
Imagen recuperada Imagen transformada Kernel de transformación inverso con x=0,1,…,M−1 y y=0,1,…,N−1.• La transformada directa se dice que es separable si:
TRANSFORMADAS DE IMÁGENES
r
(
x
,
y
,
u
,
v
)
=
r
1(
x
,
u
)
r
2(
y
,
v
)
• Adicionalmente, el kernel es simétrico si r1(x,u) es funcionalmente idéntico a r2(y,v), tal que
r
(
x
,
y
,
u
,
v
)
=
r
1(
x
,
u
)
r
1(
y
,
v
)
• Ambas propiedades también aplican a la transformada inversa.
renglón columna va lor Perfil horizontal Perfil ver tica l
• El físico-matemático francés Joseph Fourier sentó las bases del análisis de funciones periódicas las cuales son descompuestas en series trigonométricas convergentes llamadas Series de Fourier.
TRANSFORMADA DE FOURIER
• En 1822 publicó su trabajo “Teoría analítica del calor” en donde aplicó las series trigonométricas para modelar la propagación del calor.
• Actualmente el Análisis de Fourier se utiliza extensamente en varias áreas de la ciencia para el análisis de frecuencia de señales periódicas.
TRANSFORMADA DE FOURIER
CASO CONTINUO 1D
• Series de Fourier: una función periódica puede descomponerse en una suma de simples señales oscilatorias (armónicos) con diferentes frecuencias (senos y cosenos o exponenciales complejas).
Función cuadrada: f (x) = 1, 0 < x <π −1, π <x < 2π ⎧ ⎨ ⎪ ⎩⎪ Serie de Fourier: f (x) = 4 π 1 n sinnω0x n=impar ∞
∑
n = 1 n = 3 n = 7 n = 11 n = 39 n = 199• Transformada de Fourier o integral de Fourier: descompone una función periódica en sus armónicos (espectro de frecuencias) y se define como:
F(ω) = F[f(x)] = f(x)e−j2πωx dx
−∞ ∞
∫
• La transformada inversa de Fourier se expresa como: f(x) = F−1[F(ω)] = 1 2π F(ω)e j2πωx dω −∞ ∞
∫
donde: j = −1 y e±jθ = cosθ ± j sinθ
TRANSFORMADA DE FOURIER
x 0 X A f(x) Pulso rectangular f(x) = A, x < X 0, x > X ⎧ ⎨ ⎪ ⎩⎪ F(u) = f (x)e−j2πux dx −∞ ∞
∫
= Ae−j2πux dx 0 X∫
= A e−j2πux dx 0 X∫
eax dx∫
= eax a Si ⇒ − A j2πu e − j2πux 0 X = − A j2πu e −j2πuX − 1 ⎡⎣ ⎤⎦ = A j2πu e jπuX − e−jπuX ⎡⎣ ⎤⎦e−jπuX Si sinθ = e jθ − e−jθ 2 j ⇒ A πu sin(πuX)e −jπuX F(u) = A πu sin(πuX) e −jπuX 1 F(u) = AX sin(πuX) πuX Función SincTRANSFORMADA DE FOURIER
CASO CONTINUO 1DF[f(x)] f(x) = A, x < X 0, x > X ⎧ ⎨ ⎪ ⎩⎪ F(u) = AX sin(πuX) πuX f (x) 0 X A F(u) x − π 0 u X πX
TRANSFORMADA DE FOURIER
CASO CONTINUO 1Df (t) = sin(2πωt)
• Variando la velocidad angular, se observa un aumento de la frecuencia en el dominio del tiempo y que es correspondiente a un desplazamiento en el dominio de la frecuencia.
TRANSFORMADA DE FOURIER
f (t) = sin(2πt)+ sin(2πωt)
TRANSFORMADA DE FOURIER
CASO CONTINUO 1D
• Variando la velocidad angular, se observa un aumento de la frecuencia en el dominio del tiempo y que es correspondiente a un desplazamiento en el dominio de la frecuencia.
TRANSFORMADA DE FOURIER
CASO CONTINUO 2D
• El par de transformadas de Fourier bidimensionales se definen como: F(u,v) = F[f(x,y)] = f(x,y)e−j2π(xu+yv)dxdy −∞ ∞
∫
∫
f(x,y) = F−1[F(u,v)] = 1 2π F(u,v)e j2π(xu+yv)dudv −∞ ∞∫
∫
X Y x y A Si f(x,y) = A, 0 < x < X ∩ 0 < y <Y 0, otro caso ⎧ ⎨ ⎪ ⎩⎪ ep+q = ep ⋅eq ⇒ F(u,v) = A e−j2πxu dx 0 X∫
e−j2πyv dy 0 Y∫
∴ F(u,v) = AXY sin(πuX) πuX sin(πvY) πvY • Considérese el pulso rectangular 2D:TRANSFORMADA DE FOURIER
CASO CONTINUO 2D u v F(u,v) X Y x y A f(x,y) F[f(x,y)] f(x,y) = A, 0 < x < X ∩ 0 < y <Y 0, otro caso ⎧ ⎨ ⎪ ⎩⎪ F(u,v) = AXY sin(πuX) πuX sin(πvY) πvYTRANSFORMADA DE FOURIER
CASO DISCRETO 1D
• Supóngase una función continua f (x) que se ha discretizado en la sucesión: f (x) = f (x0 +xΔx)
TRANSFORMADA DE FOURIER
CASO DISCRETO 1D
• El par de transformadas discretas de Fourier (DFT) para funciones muestreadas son: F[f(x)] = F(u) = f(x)e− j2πux N x=0 N−1
∑
para u = 0,1,2,…,N −1 F−1[F(u)] = f(x) = 1 N F(u)e j2πux N u=0 N−1∑
para x = 0,1,2,…,N −1 function F = dft(f) N = numel(f); x = 0:N-1; u = 0:N-1; k = 1j*2*pi; F = zeros(1,N); for i = 1:N F(i) = sum(f.*exp(-k*x*u(i)/N)); end• Implementación numérica en MATLAB:
function f = idft(F) N = numel(F); u = 0:N-1; x = 0:N-1; k = 1j*2*pi; c = 1/N; f = zeros(1,N); for i = 1:N f(i) = c*sum(F.*exp(k*u*x(i)/N)); end
TRANSFORMADA DE FOURIER
CASO DISCRETO 2D
• En el caso de dos variables el par de transformadas discretas de Fourier son:
F[f(x,y)] = F(u,v) = f(x,y)e−j2π ux M+ vy N
( )
y=0 N−1∑
x=0 M−1∑
F−1[F(u,v)] = f(x,y) = 1 MN F(u,v)e j2π ux M+ vy N( )
v=0 N−1∑
u=0 M−1∑
para u = 0,1,2,…,M −1 v = 0,1,2,…,N −1 para x = 0,1,2,…,M − 1 y = 0,1,2,…,N −1 • Significado de la DFT 2D: la combinación de funciones armónicas base bidimensionales pueden sintetizar cualquier función arbitraria espacial.TRANSFORMADA DE FOURIER
CASO DISCRETO 2D
• Diferencias entre el dominio espacial y el dominio de la frecuencia:
x y f(x,y) proporciona la intensidad de la imagen en ese punto u v F(u,v) proporciona la contribución que la componente de frecuencia hace a la imagen F[f(x,y)] F−1[F(u,v)]
TRANSFORMADA DE FOURIER
PROPIEDADES
• El rango dinámico del espectro de Fourier es generalmente mucho mayor de
lo que los sistemas de visualización son capaces de reproducir.
• Para visualizar |F (u,v)| se realiza una compresión logarítmica como:
D(u,v) = c log 1
(
+ F(u,v))
TRANSFORMADA DE FOURIER
PROPIEDADES
• La DFT se puede expresar de forma polar como:
F(u,v) = F(u,v)ejφ(u,v)
donde la magnitud (espectro de Fourier o de frecuencias) es: F(u,v) = Re2(u,v) + Im2(u,v)
⎡⎣ ⎤⎦1 2
y el ángulo de fase es:
φ(u,v) = tan−1 Im(u,v) Re(u,v) ⎡ ⎣ ⎢ ⎤ ⎦ ⎥
• La DFT y su inversa son distributivas respecto a la suma:
F{f1(x,y)+ f2(x,y)} = F{f1(x,y)} + F{f2(x,y)}
• Pero no para la multiplicación:
TRANSFORMADA DE FOURIER
PROPIEDADES F F−1 F−1 F(u,v) φ(u,v) f(x,y)• La magnitud de la DFT 2D contiene información sobre las intensidades de la imagen, mientras que la fase contiene información sobre la localización de los objetos en la imagen.
TRANSFORMADA DE FOURIER
PROPIEDADES F−1 φ(u,v) φ(u,v) F(u,v) F(u,v) F−1TRANSFORMADA DE FOURIER
PROPIEDADES
• La DFT de una función real es simétrica conjugada, de modo que el espectro posee una simetría par con respecto al origen:
F(u,v) = F(−u,−v)
y el ángulo de fase exhibe una simetría impar con respecto al origen:
φ(u,v) = −φ(−u,−v) • También, la DFT es periódica con periodo N:
F(u,v) = F(u + N,v) = F(u,v + N) = F(u + N,v + N)
por tanto, para fines prácticos se suele tomar únicamente un periodo:
F(u)
TRANSFORMADA DE FOURIER
PROPIEDADES f(x,y) x y F(u,v) u −u v −v u −u v −v φ(u,v)TRANSFORMADA DE FOURIER
PROPIEDADES u v 0 M 2M −M ∞M ∞N −∞M −∞N 0 N 1 pe rio do• Periodicidad y simetría en la frecuencia:
F
TRANSFORMADA DE FOURIER
PROPIEDADES
• Periodicidad y simetría en el espacio:
F−1 F(u,v) x y 0 M 2M −M ∞M ∞N −∞M −∞N 0 N 1 periodo 1 pe rio do
TRANSFORMADA DE FOURIER
PROPIEDADES
• La propiedades de traslación del par de transformadas de Fourier son:
f(x,y)ej2π(u0x/M+v0y/N) ⇔ F F(u − u0,v − v0) f(x + x0,y +y0)⇔F F(u,v)e−j2π(u0x/M+v0y/N) Desplazamiento en frecuencia Desplazamiento en el espacio donde: 0 < u 0 < M −1 y 0 < v0 < N −1
• Generalmente, el origen del espectro se coloca al centro del planocon coordenadas (M/2, N/2) mediante:
TRANSFORMADA DE FOURIER
PROPIEDADES f(x,y) 0 M−1 y x 0 N−1 F(u,v) 0 M−1 v u 0 N−1 ˆ f(x,y)= f(x,y)⋅(−1)x+y v u 0 N−1 0 Fˆ(u,v) M−1 Traslación en la frecuenciaF
F
TRANSFORMADA DE FOURIER
PROPIEDADES 0 M−1 v u 0 N−1 f(x,y) 0 M−1 y x 0 N−1 ˆ F(u,v)= F(u,v)⋅e−j2π(xu0/M+yv0/N) y x 0 N−1 0 fˆ(x,y) M−1 u0 = M 2 v0 = 0 con y Traslación en el espacioF
−1F
−1 F(u,v)TRANSFORMADA DE FOURIER
PROPIEDADES
• Si se introducen las coordenadas polares:
x = r cosθ y = r sinθ u = ω cosϕ v = ω sinϕ
entonces f(x,y) y F(u,v) se convierten en f(r,θ) y en F(ω,φ),
respectivamente, de modo que se genera una rotación del ángulo:
f(r,θ +θ0)⇔F F(ω,ϕ +ϕ0)
• Si se rota la función f(r,θ+θ0) un ángulo determinado, la transformada de Fourier también será afectada por una rotación del mismo ángulo. Esta propiedad también se da a la inversa.
F F
TRANSFORMADA DE FOURIER
PROPIEDADES
• El par de DFT’s pueden expresarse en forma separable como:
F(u,v) = e−j2πux/N f(x,y) y=0 N−1
∑
x=0 N−1∑
e−j2πvy/N, para u,v = 0,1,2,…,N −1 f(x,y) = 1 N e j2πux/N F(u,v) v=0 N−1∑
u=0 N−1∑
ej2πvy/N, para x,y = 0,1,2,…,N −1• Por tanto, F(u,v) ó f(x,y) pueden obtenerse en dos pasos aplicando sucesivamente la DFT 1D o su inversa: F(u,v) = F(u,y)e−j2πvy/N y=0 N−1
∑
donde F(u,y) = f(x,y)e−j2πux/N x=0 N−1∑
f(x,y) = 1 N f(u,y)e j2πux/N u=0 N−1∑
donde f(u,y) = 1 N F(u,v)e j2πvy/N v=0 N−1∑
• La función 2D F(u,y) se obtiene aplicando DFT 1D a lo largo de cada columna de f(x,y), y
después F(u,v) se obtiene aplicando DFT 1D a lo largo de cada fila de F(u,y).
TRANSFORMADA DE FOURIER
PROPIEDADES
• La obtención de DFT 2D a partir de una serie de transformadas 1D mejora
notablemente el tiempo de cálculo de la DFT.
x y N−1 N−1 (0, 0) f(x,y) u y N−1 N−1 (0, 0) F(u,y) u v N−1 N−1 (0, 0) F(u,v) Transformada de columnas Transformada de filas u v N−1 N−1 (0, 0) F(u,v) x v N−1 N−1 (0, 0) f(u,y) x y N−1 N−1 (0, 0) f(x,y) Transformada de filas Transformada de columnas
TRANSFORMADA DE FOURIER
PROPIEDADES function F = dft2(f) f = double(f); [N,M] = size(f); F = zeros(N,M);% Transformada de las columnas
for i = 1:M
F(:,i) = dft(f(:,i)); end
% Transformada de las filas
for j = 1:N F(j,:) = dft(F(j,:)); end function f = idft2(F) F = double(F); [N,M] = size(F); f = zeros(N,M);
% Transformada de las filas
for i = 1:N
f(i,:) = idft(F(i,:)); end
% Transformada de las columnas
for j = 1:M
f(:,j) = idft(f(:,j)); end
• Implementación numérica en MATLAB de la DFT 2D, donde las funciones