Download - Imagen Filtrado Espacial
![Page 1: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/1.jpg)
Filtros espacialesImagen Original Resultado del Filtro
Aplicación del filtro unsharp masking
![Page 2: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/2.jpg)
Vecindades
Operaciones sobre vecindades:Son aquellas que se realizan sobre bloques definidos dentro de la imagen, en vez de procesar toda la imagen
![Page 3: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/3.jpg)
Operaciones basadas en vecindades
Las operaciones se realizan de la siguiente forma:
1.- Se selecciona el píxel a procesar.2.- Se selecciona el entorno del píxel.3.- Se aplica una función que depende del valor de los píxeles del entorno seleccionado4.- Se altera el píxel de la imagen de salida equivalente al píxel de la imagen de entrada, por el valor devuelto por la función.5.- Repetir de 1 a 4 por cada píxel de la imagen de entrada.
![Page 4: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/4.jpg)
Operaciones basadas en vecindades (II)
6 14 10 10 4 3
11 16 17 20 6 3
11 20 15 10 5 4
13 16 6 2 2 2
11 16 7 3 4 2
6 4 4 2 3 2
Ejemplo: Máximo de una vecindad de 3x3Imagen de entrada (I) Imagen de salida (I1)
Lo cual se realizaría con el siguiente programa Matlab >> f=inline('max(x(:))'); % Define función máxima >> I1=nlfilter(I,[3, 3],f); % Devuelve máximo
16 17 20 20 20 6
20 20 20 20 20 6
20 20 20 20 20 6
20 20 20 15 10 5
16 16 16 7 4 4
16 16 16 7 4 4
![Page 5: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/5.jpg)
Operaciones basadas en vecindades (III)
6 14 10 10 4 3
11 16 17 20 6 3
11 20 15 10 5 4
13 16 6 2 2 2
11 16 7 3 4 2
6 4 4 2 3 2
Ejemplo: Mínimo de una vecindad de 3x3
Imagen de entrada (I) Imagen de salida (I1)
Lo cual se realizaría con el siguiente programa Matlab >> f=inline('min(x(:))'); >> I1=nlfilter(I,[3, 3],f);
0 0 0 0 0 0
0 6 10 4 3 0
0 6 2 2 2 0
0 6 2 2 2 0
0 4 2 2 2 0
0 0 0 0 0 0
![Page 6: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/6.jpg)
Operaciones basadas en vecindades (IV)
6 14 10 10 4 3
11 16 17 20 6 3
11 20 15 10 5 4
13 16 6 2 2 2
11 16 7 3 4 2
6 4 4 2 3 2
El problema del contornoImagen de entrada Imagen de salida
0 0 0 0 0 0
0 6 10 4 3 0
0 6 2 2 2 0
0 6 2 2 2 0
0 4 2 2 2 0
0 0 0 0 0 0
1
2
3
1 2 3
.
.. . .
1 2 3 4 5 n1
2
3
m
. . .
. . .
. . .
![Page 7: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/7.jpg)
Operaciones basadas en vecindades (V)
Solución: Relleno de píxeles
.
.. . .
1 2 3 4 5 n1
2
3
m
. . .
. . .
. . .
.
...
. . .
1 2 3 4 5 n1
2
3
m
. . .
. . .
. . .
1
2
3
1 2 3
. . .
. . .
Imagen de entradaImagen de salida
Función: imfilter (‘La_imagen.jpg’, máscara, relleno, salida)
Rellenar contorno sin alterar la imagen original:máscara=[0 0 0 0 00 0 0 0 00 0 1 0 00 0 0 0 00 0 0 0 0]
‘same’: Mismo tamaño imagen original‘full’: Tamaño resultante con relleno (mayor)
![Page 8: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/8.jpg)
Operaciones basadas en vecindades (VI)
Relleno de una constante
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,25,'full')
w =[0 0 0 0 00 0 0 0 00 0 1 0 00 0 0 0 00 0 0 0 0]
![Page 9: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/9.jpg)
Operaciones basadas en vecindades (VII)
Relleno basado en réplica
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,’replicate' ,'full')
w =[0 0 0 0 00 0 0 0 00 0 1 0 00 0 0 0 00 0 0 0 0]
![Page 10: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/10.jpg)
Operaciones basadas en vecindades (VIII)
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
>> imfilter(f,w,’ symmetric ‘,'full')
w =[0 0 0 0 00 0 0 0 00 0 1 0 00 0 0 0 00 0 0 0 0]
![Page 11: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/11.jpg)
Operaciones basadas en vecindades (IX)
Tamaño de la 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 00 0 0 0 00 0 1 0 00 0 0 0 00 0 0 0 0]
>> imfilter(f,w,0,’ same')
![Page 12: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/12.jpg)
Responden a la siguiente ecuación:
Filtros espaciales
a
as
b
bt
tysxftswyxg ),(),(),(
donde:f(x+s, y+t): Valor de los píxeles del bloque seleccionadow(s, t): Coeficientes que se aplicarán al bloque (máscara)
Siendo la matriz del bloque:m(filas) = 2a + 1n(columnas) = 2b + 1
![Page 13: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/13.jpg)
Concepto:
Son las operaciones que se realizan directamente sobre los píxeles. Se define una matriz de coeficientes del filtro (o máscara, de tamaño mxn) los cuales constituirán pesos ponderados por los que se multiplicarán los valores originales de los píxeles.
Filtros espaciales (II)
![Page 14: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/14.jpg)
Filtros espaciales (III)
f(x-1, y-1) f(x-1, y) f(x-1, y+1)
f(x, y-1) f(x, y) f(x, y+1)
f(x+1, y-1) f(x+1, y) f(x+1, y+1)
Valores de los píxeles del bloque
w(-1, -1) w(-1, 0) w(-1, 1)
w(0, -1) w(0, 0) w(0, 1)
w(1, -1) w(1, 0) w(1, 1)
Valores de los píxeles de los coeficientes (máscara)
a
as
b
bt
tysxftswyxg ),(),(),(
![Page 15: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/15.jpg)
Ejemplo:Valor de los píxeles
17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9
Filtros espaciales (IV)
Máscara (o filtro) 8 1 6 3 5 7 4 9 2
g(2,4)=1(8)+8(1)+15(6)+7(3)+14(5)+16(7)+13(4)+20(9)+22(2)=585
a
as
b
bt
tysxftswyxg ),(),(),(
![Page 16: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/16.jpg)
Pasos para la aplicación del filtro lineal: 1.- Definir la máscara
2.- Definir tipo de relleno3.- Aplicar la ecuación:
4.- Definir tamaño de la imagen de salida
Filtros espaciales (V)
a
as
b
bt
tysxftswyxg ),(),(),(
![Page 17: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/17.jpg)
Filtros espaciales (VI)
Filtro promedio:
Filtro promedio ponderado:
Ejemplos de filtros
![Page 18: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/18.jpg)
Filtros espaciales (VII)
Forma general
Ejemplos de máscaras de filtro promedio ponderado(incluye denominador)
111
121
111
10
1w
121
242
121
16
1w
11
11
2
1 22
c
ccc
c
cw
![Page 19: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/19.jpg)
Ejemplo (usando Matlab):% Imagen original>> I=imread('tire.tif');
% Se define una matriz de pesos de valores iguales, % a lo que se le denomina filtro promedio>> w=ones(5,5)/25;
% Se aplica el filtro>> I2=imfilter(I,w);
Filtros espaciales (VIII)
>> I(1:5,1:5)ans = 6 14 10 10 4 11 16 17 20 6 11 20 15 10 5 13 16 6 2 2 11 16 7 3 4
>> I2(1:5,1:5)ans = 5 6 7 6 5 6 8 9 7 5 8 9 10 9 6 7 8 9 8 5 6 6 7 6 4
Original Resultado
![Page 20: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/20.jpg)
Filtros espaciales (IX)
Original
![Page 21: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/21.jpg)
Filtros espaciales (X)
Original
0 50 100 150 200 250
0
100
200
300
400
500
600
700
800
900
>> imhist(I)
0 50 100 150 200 250
0
100
200
300
400
500
600
700
800
>> imhist(I2)
![Page 22: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/22.jpg)
Filtros espaciales (XI)
Método de correlación: Se aplica la máscara tal y como se define
Método de convolución: Se rota la máscara 180 grados alrededor del píxel central, antes de aplicar el filtro
Formas de aplicar la máscara
f =0 0 0 0 00 0 0 0 00 0 1 0 00 0 0 0 00 0 0 0 0
w =1 2 34 5 67 8 9
>> imfilter(f,w,'corr') >> imfilter(f,w,'conv')
ImagenMáscara
![Page 23: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/23.jpg)
Ruido: Es un deterioro de la imagen que puede producirse debido a:
1.- Píxeles perdidos en un sensor CCD
2.- Cuando se comprime o transmite la imagen
3.- Inadecuada iluminación de la escena
4.- Escáner de documentos
5.- Sensibilidad inadecuada de las cámaras, etc.
Imágenes ruidosas
),(),(),( yxyxfyxg
Ruído
![Page 24: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/24.jpg)
Escáner de una letra con y sin ruído
Imágenes ruidosas (II)
G = 0 1 1 1 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 1 1 1 0 0 0 1 0 1 1 1 0
G_ruidosa = 0.1337 0.9859 1.0447 1.0773 -0.5392 1.0712 0.0547 0.0860 -0.0817 0.9028 0.6783 0.0299 0.3474 -0.0147 0.1335 1.2666 0.0991 0.3885 -0.2928 0.1002 1.0181 -0.0948 0.0390 0.8881 0.9455 0.8147 0.0208 0.4779 0.1484 1.2493 -0.2367 0.9407 1.0204 1.0842 -0.2981
>>[R,Q] = size(G);
>>G_ruidosa = G + randn(R,Q)*0.2
![Page 25: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/25.jpg)
Imágenes ruidosas (III)
% Ruido gausiano >> s = 15; % Desviación estándar
>> s = s/255; % Se normaliza a [0,1] >> II = imnoise(road,'gaussian',0,s^2);
% media 0, varianza (15^2)
![Page 26: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/26.jpg)
Imágenes ruidosas (IV)
III=imnoise(I,'poisson');
![Page 27: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/27.jpg)
Imágenes ruidosas (V)
IV=imnoise(I,'salt & pepper');
![Page 28: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/28.jpg)
Imágenes ruidosas (VI)
V=imnoise(I,'speckle');
![Page 29: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/29.jpg)
Supresión de ruido con filtro promedio
IV=imnoise(I,'salt & pepper');>> w=ones(3,3)/9;>> I2=imfilter(I,w);
![Page 30: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/30.jpg)
Filtro Laplaciano
Este tipo de filtro se basa en un operador derivativo, por lo que acentúa las zonas que
tienen gran discontinuidad en la imagen, destacando detalles finos, bordes y
discontinuidades
)()1()(
xfxfx
xf
![Page 31: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/31.jpg)
Filtro Laplaciano (II)
Si se cumple: )()1()(
xfxfx
xf
Entonces: )(2)1()1()(
2
2
xfxfxfx
xf
2
2
2
22 ),(),(
),(y
yxf
x
yxfyxf
Si la función depende de dos variables
![Page 32: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/32.jpg)
Filtro Laplaciano (III)
2
2
2
22 ),(),(
),(y
yxf
x
yxfyxf
Función dependiente de dos variables
La derivada de segundo orden con respecto a al variable x:
),(2),1(),1(),(
2
2
yxfyxfyxfx
yxf
De forma similar, con respecto a y:
),(2)1,()1,(),(
2
2
yxfyxfyxfy
yxf
),(2)1,()1,(),(2),1(),1(),(2 yxfyxfyxfyxfyxfyxfyxf
Finalmente:
![Page 33: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/33.jpg)
Filtro Laplaciano (IV)
El Laplaciano queda definido por:
),(4)1,()1,(),1(),1(),(2 yxfyxfyxfyxfyxfyxf
La anterior expresión es equivalente a aplicar una máscara definida por:
w = 0 1 0 1 -4 1 0 1 0
a
as
b
bt
tysxftswyxg ),(),(),(
![Page 34: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/34.jpg)
% Imagen original
>> I=imread('moon.tif' );
% Se define una matriz de pesos
>> w=[0, 1, 0; 1, -4, 1; 0, 1, 0];
% Se aplica el filtro
>> I2=imfilter(I,w);
Filtro Laplaciano (V)
Alternativa:>> I=imread('moon.tif');>> w=fspecial('laplacian',0);>> I2=imfilter(I,w,'replicate');
![Page 35: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/35.jpg)
Filtro Laplaciano (VI)
Imágenes: www.imageprecessingplace.com
![Page 36: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/36.jpg)
Filtro Laplaciano (VII)
),(4)1,()1,(),1(),1(),(2 yxfyxfyxfyxfyxfyxf
w = 0 1 0 1 -4 1 0 1 0
w = 1 1 1 1 -8 1 1 1 1
Si se desea considerar las variaciones con respecto a la diagonal
+1
-4
w = -1 -1 -1 -1 8 -1 -1 -1 -1
También se utiliza el negado de las anteriores máscaras
w = 0 -1 0 -1 4 -1 0 -1 0
![Page 37: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/37.jpg)
Filtros Laplacianos alternativos
Se emplea en pocas ocasiones en la práctica
Excesivamente sensible a la presencia de ruido Da lugar a bordes dobles y no permite determinar direcciones
Sumar o restar el Laplaciano de la imagen dependiendodel signo del coeficiente central de la máscara utilizada
Coeficiente central de la máscara negativo
Coeficiente central de la máscara positivo
Se utiliza para realzar una imagen
![Page 38: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/38.jpg)
Filtros Laplacianos alternativos (II)Resultado de sustraer el Laplaciano
(una única máscara)
Incluye diagonal
![Page 39: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/39.jpg)
Filtro Gaussiano
La máscara o filtro que responde a:
a
as
b
bs
ts
yx
e
eyxw
222
222
4/)(
4/)(
),(
ó
Siendo la matriz del bloque:m(filas) = 2a + 1n(columnas) = 2b + 1
![Page 40: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/40.jpg)
Filtro Gaussiano (II)
Influencia del parámetro
![Page 41: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/41.jpg)
Filtro Gaussiano (III)
Máscara a partir de función no linealFiltro que se aplica es lineal
a
as
b
bt
tysxftswyxg ),(),(),(0.0478 0.1163 0.04780.1163 0.2829 0.11630.0478 0.1163 0.0478
-3 -2 -1 0 1 2 30
0.05
0.1
0.15
0.2
0.25
%Define máscara>> fspecial('gaussian',3,0.5)ans =0.0113 0.0838 0.01130.0838 0.6193 0.08380.0113 0.0838 0.0113
% Máscara y filtro>> w=fspecial(‘gaussian',3,0.5);>> I2=imfilter(I,w,'replicate');
![Page 42: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/42.jpg)
Laplaciana de la gausiana
![Page 43: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/43.jpg)
Laplaciana de la gausiana (II)>> w=fspecial('log',5,0.4)ans =0.2475 0.2475 0.2479 0.2475 0.24750.2475 0.3545 1.2336 0.3545 0.24750.2479 1.2336 -10.31 1.2336 0.24790.2475 0.3545 1.2336 0.3545 0.24750.2475 0.2475 0.2479 0.2475 0.2475>>surf(w) >>surf(-w)
12
34
5
1
2
3
4
5-15
-10
-5
0
5
st 12
34
5
1
2
3
4
5-5
0
5
10
15
st
![Page 44: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/44.jpg)
Laplaciana de la gausiana (III)
12
34
5
1
2
3
4
5-15
-10
-5
0
5
st
>> 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)
Mejorando detalles del tipo de filtros
![Page 45: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/45.jpg)
Máscaras con fspecial
>> 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/25ans = 0.0400
Disco
![Page 46: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/46.jpg)
Ejemplo: Promedio
>> w=fspecial('average');
Imagen Original Resultado del Filtro
![Page 47: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/47.jpg)
Máscaras con fspecial (II)
>> z = fspecial('log',5,0.7)
Gausiana>>z = fspecial('gaussian',5,0.7)
Laplaciana de la gausiana
![Page 48: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/48.jpg)
Ejemplo: Filtro Gaussiano
>> w=fspecial('gaussian');
Imagen Original Resultado del Filtro
![Page 49: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/49.jpg)
Máscaras con fspecial (III)
>> z = fspecial('unsharp',0.3)
Laplaciana>>z = z = fspecial('laplacian',0.3)
Mejora de contraste
>> fspecial('laplacian',0) 0 1 0 1 -4 1 0 1 0
>> fspecial('unsharp',0) 0 -1 0 -1 5 -1 0 -1 0
![Page 50: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/50.jpg)
Filtro para acentuar contraste
>> w=fspecial('unsharp'); Imagen Original Resultado del Filtro
![Page 51: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/51.jpg)
Acentuar transiciones horizontales y verticalesPrewit: Acentuar transiciones horizontales
Máscara: w = [ 1 1 1 0 0 0 -1 -1 -1]
Sobel: Acentuar transiciones horizontales
Máscara: w = [1 2 1 0 0 0 -1 -2 -1]
Acentuar transiciones verticales: Transpuesta de la matriz
Máscaras con fspecial (IV)
![Page 52: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/52.jpg)
Ejemplo: Filtro Prewit
>> w=fspecial('prewitt');Imagen Original Resultado del Filtro
![Page 53: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/53.jpg)
Ejemplo: Filtro Sobel
>> w=fspecial('sobel');>> hp=transp(w); % Acentúa vertical
Imagen Original Resultado del Filtro
![Page 54: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/54.jpg)
Filtros no lineales
a
as
b
bt
tysxftswyxg ),(),(),(
Filtro lineal
Filtro no linealValor de los píxeles
17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9
Bloque de píxeles 1 1 1 1 1 1 1 1 1
>>B = nlfilter(A, [m n], función_nl)
Aplicación Supresión de ruido
![Page 55: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/55.jpg)
Ejemplo de aplicación de filtro no lineal
Sea: -Sxy La región de la imagen -(x,y) Centro de la región
- f’(x,y) La salida del filtro (escalar)
Filtro de Media aritmética
xySts
tsgmn
yxf),(
),(1
),(ˆ
A = imread(‘imagen.jpg'); fun = @(x) mean(x(:)); B = nlfilter(A,[3 3],fun);
A = 1 2 3 4 5 6 7 8 9
B = 1.3333 2.3333 1.7778 3.0000 5.0000 3.6667 2.6667 4.3333 3.1111
![Page 56: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/56.jpg)
Ejemplo de Filtro de Media aritmética Imagen original Media aritmética
Filtros no lineales (II)
![Page 57: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/57.jpg)
Filtro de Media geométrica
mn
Sts xy
tsgyxf
1
),(
),(),(ˆ
Filtro de Media armónica
xySts tsg
mnyxf
),( ),(
1),(ˆ
Función spfilt: Gonzáles, R.; Woods, R.; Eddins, S.: Digital Image Processing Using Matlab. 2004
Filtros no lineales (III)
![Page 58: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/58.jpg)
Ejemplo de Filtro de Media geométrica (I2=spfilt(I, 'gmean', 3, 3);)
Media geométricaImagen original
Filtros no lineales (IV)
![Page 59: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/59.jpg)
Ejemplo de Filtro de Media armónica
>> I2=uint8(3*3./imfilter(1./I, ones(3, 3), 'symmetric'))Media harmónico
Imagen original
Filtros no lineales (V)
![Page 60: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/60.jpg)
Filtro de Media Contra-armónica
Filtro de Punto medio
xy
xy
Sts
Q
Sts
Q
tsg
tsg
yxf
),(
),(
1
),(
),(
),(ˆ
)},(min{)},(max{2
1),(ˆ tsgtsgyxf
Filtros no lineales (VI)
Filtro de máximo (aclara) Filtro de mínimo (oscurece)
)},(max{),(ˆ tsgyxf )},(min{),(ˆ tsgyxf
![Page 61: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/61.jpg)
Ejemplo de Filtro de Media Contra-armónica (I2=spfilt(I, 'chmean‘,3, 3);)
Imagen original Media contraharmónico
Filtros no lineales (VII)
![Page 62: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/62.jpg)
Ejemplo de Filtro de Punto medio >> d1=ordfilt2(I, 1, ones(3, 3), 'symmetric'); % Mínimo>> d2=ordfilt2(I, 3*3, ones(3, 3), 'symmetric'); % Máximo>> I1=uint8(1/2*(d2+d1));
Imagen original Punto medio
Filtros no lineales (VIII)
![Page 63: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/63.jpg)
Filtro Mediana
Filtros no lineales (IX)
Valor de los píxeles
17 24 1 8 15 23 5 7 40 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9
1.- Se ordenan
1 7 8 13 15 16 20 22 40
2.- Se selecciona el central
17 24 1 8 15 23 5 7 15 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9
Número par de píxelesLa media de los dos
píxeles centrales
![Page 64: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/64.jpg)
¿Cuál filtro utilizar?
>>I=imread('contornos.tif'); % Se determinan los bordes verticales>> II=edge(I, 'sobel', 'vertical'); imshow(II)
Verificar como se difuminan los bordes después de aplicar el filtro
![Page 65: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/65.jpg)
¿Cuál filtro utilizar? (II)% Se aplica ruido a la imagen>> III=imnoise(I,'salt & pepper',0.005);% Se aplica el filtro mediana y se detectan bordes verticales>> IV=medfilt2(III);>> V=edge(IV, 'sobel', 'vertical'); imshow(V)
![Page 66: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/66.jpg)
¿Cuál filtro utilizar? (III)% Se aplica el filtro promedio y se detectan bordes verticales>>w=fspecial('average');>>VI=uint8(imfilter(III, w, 'symmetric'));>> VII=edge(VI, 'sobel', 'vertical'); imshow(VII)% Se aplica el filtro media armónica y se detectan bordes verticales>> VIII=uint8(3*3./imfilter(1./III, ones(3, 3), 'symmetric'));>>IX=edge(VIII, 'sobel', 'vertical'); imshow(IX)
![Page 67: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/67.jpg)
Resultado
% Se aplica el filtro punto medio %y se detectan bordes verticales>> d1=ordfilt2(III, 1, ones(3, 3), 'symmetric');>> d2=ordfilt2(III, 3*3, ones(3, 3), 'symmetric');>> X=uint8(1/2*(d2+d1));>>XI=edge(X, 'sobel', 'vertical'); imshow(XI)
Calidad por siguiente orden:MedianaPromedioPunto medioMedia armónica
Frente a ruido: Sal y Pimienta
![Page 68: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/68.jpg)
Filtros usando Simulink
Filtro mediana
Fijar parámetros de simulación
![Page 69: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/69.jpg)
Filtros usando Simulink (II)
![Page 70: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/70.jpg)
Filtros usando Simulink (III)
Se define “fspecial’
![Page 71: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/71.jpg)
Filtros usando Simulink (IV)
![Page 72: Imagen Filtrado Espacial](https://reader036.vdocuments.pub/reader036/viewer/2022081504/558012b3d8b42a190e8b494f/html5/thumbnails/72.jpg)
Filtros usando Simulink (V)
Video de una cámara conectada ó archivo.avi: Ver vipedge, sustituir por 2-D FIR Filter