Escolar Documentos
Profissional Documentos
Cultura Documentos
DOMINIO FRECUENCIAL
FUNCIONES EN MATLAB
Problema.
n(x,y)
Imgenes ruidosas
Escner de la letra G con y sin rudo
>>G_ruidosa = G + randn(R,Q)*0.2
G=01110100011000010000100111000101110
J= imnoise(I,gaussian, m, v)
Ruido Gaussiano (IV)
Ejemplo:
Ejemplo multiplicativo:
Mejoramiento de la imagen:
Dominio Frecuencial
Paso bajo Paso banda
Paso alto Rechazo banda
Filtros del Domino Espacial
Estos filtros consisten en modificar o mejorar
un pixel elegido en funcin de los valores de
un entorno o subconjunto de pixeles vecinos
a aquel.
Vecindades
Operaciones sobre vecindades:
Son aquellas que se realizan sobre bloques definidos
dentro de la imagen, en vez de procesar toda la imagen
Operaciones basadas
en vecindades (I)
Las operaciones se realizan de la siguiente forma:
f=
1 2 3 2 1
-1 -2 -3 -2 -1
1 2 3 2 1
-1 -2 -3 -2 -1
1 2 3 2 1
w=
[0 0 0 0 0
00000
00100
00000 >> imfilter(f,w,25,'full')
0 0 0 0 0]
Operaciones basadas
en vecindades (IV)
Relleno basado en rplica
f=
1 2 3 2 1
-1 -2 -3 -2 -1
1 2 3 2 1
-1 -2 -3 -2 -1
1 2 3 2 1
w=
[0 0 0 0 0
00000
00100
00000 >> imfilter(f,w,replicate' ,'full')
0 0 0 0 0]
Operaciones basadas
en vecindades (V)
Relleno basado en espejo
f=
1 2 3 2 1
-1 -2 -3 -2 -1
1 2 3 2 1
-1 -2 -3 -2 -1
1 2 3 2 1
w=
[0 0 0 0 0
00000
00100
00000 >> imfilter(f,w, symmetric ,'full')
0 0 0 0 0]
Operaciones basadas
en vecindades (VI)
Tamao imagen destino
f=
1 2 3 2 1
-1 -2 -3 -2 -1
1 2 3 2 1
-1 -2 -3 -2 -1
1 2 3 2 1 >> imfilter(f,w,0, full')
w=
[0 0 0 0 0
00000
00100
00000
0 0 0 0 0]
>> imfilter(f,w,0, same')
Filtros de orden:
Metodologa:
Definir tamao de submatriz para actuar.
Ordenar los elementos que engloban la submatriz.
Aplicar el criterio correspondiente dependiendo del filtro.
Tipos de ventanas:
Preserva bordes Preserva bordes
Vert. y horizont. oblicuos
Filtros de orden:
Debe fijarse un tamao de vecindad.
Puede ser rectangular o de cualquier otra forma, generalmente
cuadrado y nmero de elementos impar.
Debe definirse la posicin del pixel de estudio respecto a la
ventana, generalmente y por simetra el central.
En una convolucin las propiedades del filtro vienen dadas por los
coeficientes de la mscara.
menor mayor
Operaciones basadas
en vecindades (I)
Ejemplo: Mediana de una vecindad de 3x3
Imagen de entrada (I) Imagen de salida (I1)
0 10 10 6 3 0
6 14 10 10 4 3
11 14 15 10 5 3
11 16 17 20 6 3
11 15 16 6 4 2
11 20 15 10 5 4
11 13 10 5 3 2
13 16 6 2 2 2
11 16 7 3 4 2 6 7 4 3 2 2
6 4 4 2 3 2 0 4 3 3 2 0
1 2 1
2 4 2
1 2 1
Filtrado de la mediana (IV)
3 35 12 1 2 1 3 70 12
X 2 4 2 = 12 100 45
6 25 45
15 17 22 1 2 1 15 34 22
3 12 12 15 22 34 45 70 100
Filtrado de la moda
6 14 10 10 4 3 0 0 0 0 0 0
11 16 17 20 6 3 0 6 10 4 3 0
11 20 15 10 5 4 0 6 2 2 2 0
13 16 6 2 2 2 0 6 2 2 2 0
11 16 7 3 4 2 0 4 2 2 2 0
6 4 4 2 3 2 0 0 0 0 0 0
Su efecto es el difuminado o 1 1 1
suavizado de la imagen y se
aplica junto con el de mediana 1/9 * 1 1 1
para eliminar ruidos.
1 1 1
Este filtro se puede implementar
con la siguiente mscara(kernel)
para un tamao 3x3:
1 1 1
1/9 * 1 2 1
1 1 1
Filtros de media Lineales (V)
1 b 1
1/9 *
b b2 b
1 b 1
a b
g ( x, y) w ( s, t ) f ( x s, y t )
s at b
Filtros espaciales (IV)
Ejemplo:
Valor de los pxeles
17 24 1 8 15
Mscara (o filtro)
23 5 7 14 16 8 1 6
4 6 13 20 22 3 5 7
10 12 19 21 3 4 9 2
11 18 25 2 9
a b
g ( x, y) w ( s, t ) f ( x s, y t )
s at b
g(2,4)=1(8)+8(1)+15(6)+7(3)+14(5)+16(7)+13(4)+20(9)+22(2)=585
Filtros espaciales (V)
Filtro promedio:
900
800
800
700
700
600
600
500
500
400
400
300 300
200 200
100 100
0 0
Imagen
f= Mscara
00000 w=
00000 123
00100 456
00000 789
00000
f ( x)
f ( x 1) f ( x)
x
Filtro Laplaciano (II)
f ( x)
Si se cumple: f ( x 1) f ( x)
x
2 f ( x)
Entonces: f ( x 1) f ( x 1) 2 f ( x)
x 2
2
f ( x , y ) 2
f ( x, y )
f ( x, y )
2
x 2
y 2
Filtro Laplaciano (III)
Funcin dependiente de dos variables
2
f ( x , y ) 2
f ( x, y )
f ( x, y )
2
x 2
y 2
La derivada de segundo orden con respecto a al variable x:
2 f ( x, y )
f ( x 1, y ) f ( x 1, y ) 2 f ( x, y )
x 2
2 f ( x, y )
f ( x, y 1) f ( x, y 1) 2 f ( x, y )
y 2
Finalmente:
2 f ( x, y ) f ( x 1, y ) f ( x 1, y ) 2 f ( x, y ) f ( x, y 1) f ( x, y 1) 2 f ( x, y )
Filtro Laplaciano (IV)
El Laplaciano queda definido por:
2 f ( x, y ) f ( x 1, y ) f ( x 1, y ) f ( x, y 1) f ( x, y 1) 4 f ( x, y )
w=
0 1 0 a b
1 -4 1 g ( x, y) w ( s, t ) f ( x s, y t )
s at b
0 1 0
Filtro Laplaciano (V)
% Imagen original
>> I=imread('moon.jpg' );
% Se define una matriz de pesos
>> w=[0, 1, 0; 1, -4, 1; 0, 1, 0];
% Se aplica el filtro
>> I2=imfilter(I,w);
Alternativa:
>> I=imread('moon.jpg ');
>> w=fspecial('laplacian',0);
>> I2=imfilter(I,w,'replicate');
Filtro Laplaciano (VI)
Imgenes: www.imageprecessingplace.com
Filtro Laplaciano (VII)
2 f ( x, y ) f ( x 1, y ) f ( x 1, y ) f ( x, y 1) f ( x, y 1) 4 f ( x, y )
w= w=
0 1 0
1 -4 1 1 1 1
0 1 0 1 -8 1
-4 1 1 1
+1 Tambin se utiliza el negado de las anteriores mscaras
w= w=
-1 -1 -1 0 -1 0
-1 8 -1 -1 4 -1
-1 -1 -1 0 -1 0
Filtros Laplacianos
alternativos
Se emplea en pocas ocasiones en la prctica
Incluye
diagonal
MatLab: Resumen
Introduccin de ruido:
Gaussiano:
Gaussiano
Ruidosa = imnoise(imagen,gaussian,media,varianza)
Multiplicativo:
Multiplicativo
Ruidosa = imnoise(imagen, 'speckle',media,varianza)
Matlab
Filtrado:
Mediana:
Filtrada = medfilt2(Imagen,[tamao de ventana])
Por defecto: ventana = 3 x 3
Mximo:
Filtrada = ordfilt2 (Imagen,9,ones(tamao de ventana))
Mnimo:
Filtrada = ordfilt2 (Imagen,1,ones(tamao de ventana))
Media aritmtica:
Filtrada = imfilter (Imagen,fspecial(average,[tamao de ventana]))
Por defecto: ventana = 3 x 3
Gaussiano:
Filtrada = imfilter (Imagen,fspecial(gaussian,[tamao de ventana],varianza))
Por defecto: ventana = 3 x 3
Generacin de Filtros en Matlab
h = fspecial(type)
h = fspecial(type, parameters)
e
s a s b
( s 2 t 2 ) / 4 2
0.05
% Mscara y filtro
>> w=fspecial(gaussian',3,0.5);
0
-3 -2 -1 0 1 2 3 >> I2=imfilter(I,w,'replicate');
0 10
-5 5
-10 0
-15 -5
5 5
4 5 4 5
3 4 3 4
3 3
2 2 2 2
t 1 1 t 1 1
s s
Laplaciana de la gausiana (III)
Mejorando detalles del tipo de filtros
>> w=fspecial('log',5,0.4)
>> [x, y]=meshgrid(-2:1:2)
>> [xi, yi]=meshgrid(-2:.05:2);
>> zi = interp2(x,y,z,xi,yi);
>> surf(xi,yi,zi)
-5
-10
-15
5
4 5
3 4
3
2 2
t 1 1
s
Mscaras con fspecial
Disco
>> w = fspecial('disk',4)
Promedio
>> w = fspecial('average',5)
w=
0.0400 0.0400 0.0400 0.0400 0.0400
0.0400 0.0400 0.0400 0.0400 0.0400
0.0400 0.0400 0.0400 0.0400 0.0400
0.0400 0.0400 0.0400 0.0400 0.0400
0.0400 0.0400 0.0400 0.0400 0.0400
>> 1/25
ans =
0.0400
Ejemplo: Promedio
>> w=fspecial('average');
Imagen Original Resultado del Filtro
Mscaras con fspecial (II)
Gausiana Laplaciana de la gausiana
>>z = fspecial('gaussian',5,0.7) >> z = fspecial('log',5,0.7)
Ejemplo: Filtro Gaussiano
>> w=fspecial('gaussian');
Mscara: w =
[1 2 1
0 0 0
-1 -2 -1]
Acentuar transiciones verticales: Transpuesta de la matriz
Ejemplo: Filtro Prewit
>> w=fspecial('prewitt');
Imagen Original
Resultado del Filtro
Ejemplo: Filtro Sobel
>> w=fspecial('sobel');
>> hp=transp(w); % Acenta vertical
Imagen Original Resultado del Filtro
Filtros no lineales
Filtro lineal
a b
g ( x, y) w ( s, t ) f ( x s, y t )
s at b
Filtro no lineal
Valor de los pxeles
Bloque de pxeles
17 24 1 8 15
1 1 1
23 5 7 14 16
1 1 1
4 6 13 20 22 1 1 1
10 12 19 21 3
11 18 25 2 9 >>B = nlfilter(A, [m n], funcin_nl)
f ( x, y ) 1
g ( s, t )
mn ( s ,t )S xy
A= B=
A = imread(imagen.jpg'); 1 2 3 1.3333 2.3333 1.7778
fun = @(x) mean(x(:)); 4 5 6 3.0000 5.0000 3.6667
B = nlfilter(A,[3 3],fun); 7 8 9 2.6667 4.3333 3.1111
Filtros no lineales (II)
Ejemplo de Filtro de Media aritmtica
Imagen original Media aritmtica
Filtros no lineales (III)
Filtro de Media geomtrica
1
mn
f ( x, y ) g ( s, t )
( s ,t )S xy
Funcin spfilt:
Gonzles, R.; Woods, R.; Eddins, S.: Digital Image Processing Using Matlab. 2004
Filtros no lineales (IV)
Ejemplo de Filtro de Media geomtrica
(I2=spfilt(I, 'gmean', 3, 3);)
Imagen original Media geomtrica
Filtros no lineales (V)
Ejemplo de Filtro de Media armnica
>> I2=uint8(3*3./imfilter(1./I, ones(3, 3), 'symmetric'))
Media harmnico
Imagen original
Filtros no lineales (VI)
Filtro de Media Contra-armnica
g ( s ,
( s ,t )S xy
t ) Q 1
f ( x, y )
g ( s ,
( s ,t )S xy
t ) Q
Frente a ruido:
Sal y Pimienta