70
Filtros espaciales Im agen O riginal R esultado delFiltro Aplicación del filtro unsharp masking

Filtros espaciales Aplicación del filtro unsharp masking

Embed Size (px)

Citation preview

Page 1: Filtros espaciales Aplicación del filtro unsharp masking

Filtros espacialesImagen Original Resultado del Filtro

Aplicación del filtro unsharp masking

Page 2: Filtros espaciales Aplicación del filtro unsharp masking

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: Filtros espaciales Aplicación del filtro unsharp masking

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: Filtros espaciales Aplicación del filtro unsharp masking

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: Filtros espaciales Aplicación del filtro unsharp masking

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: Filtros espaciales Aplicación del filtro unsharp masking

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: Filtros espaciales Aplicación del filtro unsharp masking

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: Filtros espaciales Aplicación del filtro unsharp masking

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: Filtros espaciales Aplicación del filtro unsharp masking

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: Filtros espaciales Aplicación del filtro unsharp masking

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: Filtros espaciales Aplicación del filtro unsharp masking

Operaciones basadas en vecindades (IX)

Tamaño 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: Filtros espaciales Aplicación del filtro unsharp masking

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: Filtros espaciales Aplicación del filtro unsharp masking

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: Filtros espaciales Aplicación del filtro unsharp masking

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: Filtros espaciales Aplicación del filtro unsharp masking

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: Filtros espaciales Aplicación del filtro unsharp masking

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: Filtros espaciales Aplicación del filtro unsharp masking

Filtros espaciales (VI)

Filtro promedio:

Filtro promedio ponderado:

Ejemplos de filtros

Page 18: Filtros espaciales Aplicación del filtro unsharp masking

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 (VII)

>> 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 19: Filtros espaciales Aplicación del filtro unsharp masking

Filtros espaciales (VIII)

Original

Page 20: Filtros espaciales Aplicación del filtro unsharp masking

Filtros espaciales (IX)

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 21: Filtros espaciales Aplicación del filtro unsharp masking

Filtros espaciales (X)

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 22: Filtros espaciales Aplicación del filtro unsharp masking

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 23: Filtros espaciales Aplicación del filtro unsharp masking

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 24: Filtros espaciales Aplicación del filtro unsharp masking

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 25: Filtros espaciales Aplicación del filtro unsharp masking

Imágenes ruidosas (IV)

III=imnoise(I,'poisson');

Page 26: Filtros espaciales Aplicación del filtro unsharp masking

Imágenes ruidosas (V)

IV=imnoise(I,'salt & pepper');

Page 27: Filtros espaciales Aplicación del filtro unsharp masking

Imágenes ruidosas (VI)

V=imnoise(I,'speckle');

Page 28: Filtros espaciales Aplicación del filtro unsharp masking

Supresión de ruido con filtro promedio

IV=imnoise(I,'salt & pepper');>> w=ones(3,3)/9;>> I2=imfilter(I,w);

Page 29: Filtros espaciales Aplicación del filtro unsharp masking

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

)()1()(

xfxfx

xf

Page 30: Filtros espaciales Aplicación del filtro unsharp masking

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 31: Filtros espaciales Aplicación del filtro unsharp masking

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 32: Filtros espaciales Aplicación del filtro unsharp masking

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 33: Filtros espaciales Aplicación del filtro unsharp masking

% 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 34: Filtros espaciales Aplicación del filtro unsharp masking

Filtro Laplaciano (VI)

Imágenes: www.imageprecessingplace.com

Page 35: Filtros espaciales Aplicación del filtro unsharp masking

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 0 0 -1 0

Page 36: Filtros espaciales Aplicación del filtro unsharp masking

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 37: Filtros espaciales Aplicación del filtro unsharp masking

Filtros Laplacianos alternativos (II)Resultado de sustraer el Laplaciano

(una única máscara)

Incluye diagonal

Page 38: Filtros espaciales Aplicación del filtro unsharp masking

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 39: Filtros espaciales Aplicación del filtro unsharp masking

Filtro Gaussiano (II)

Influencia del parámetro

Page 40: Filtros espaciales Aplicación del filtro unsharp masking

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 41: Filtros espaciales Aplicación del filtro unsharp masking

Laplaciana de la gausiana

Page 42: Filtros espaciales Aplicación del filtro unsharp masking

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 43: Filtros espaciales Aplicación del filtro unsharp masking

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 44: Filtros espaciales Aplicación del filtro unsharp masking

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 45: Filtros espaciales Aplicación del filtro unsharp masking

Ejemplo: Promedio

>> w=fspecial('average');

Imagen Original Resultado del Filtro

Page 46: Filtros espaciales Aplicación del filtro unsharp masking

Máscaras con fspecial (II)

>> z = fspecial('log',5,0.7)

Gausiana>>z = fspecial('gaussian',5,0.7)

Laplaciana de la gausiana

Page 47: Filtros espaciales Aplicación del filtro unsharp masking

Ejemplo: Filtro Gaussiano

>> w=fspecial('gaussian');

Imagen Original Resultado del Filtro

Page 48: Filtros espaciales Aplicación del filtro unsharp masking

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 49: Filtros espaciales Aplicación del filtro unsharp masking

Filtro para acentuar contraste

>> w=fspecial('unsharp'); Imagen Original Resultado del Filtro

Page 50: Filtros espaciales Aplicación del filtro unsharp masking

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 51: Filtros espaciales Aplicación del filtro unsharp masking

Ejemplo: Filtro Prewit

>> w=fspecial('prewitt');Imagen Original Resultado del Filtro

Page 52: Filtros espaciales Aplicación del filtro unsharp masking

Ejemplo: Filtro Sobel

>> w=fspecial('sobel');>> hp=transp(w); % Acentúa vertical

Imagen Original Resultado del Filtro

Page 53: Filtros espaciales Aplicación del filtro unsharp masking

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 ruído

Page 54: Filtros espaciales Aplicación del filtro unsharp masking

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 55: Filtros espaciales Aplicación del filtro unsharp masking

Ejemplo de Filtro de Media aritmética Imagen original Media aritmética

Filtros no lineales (II)

Page 56: Filtros espaciales Aplicación del filtro unsharp masking

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 57: Filtros espaciales Aplicación del filtro unsharp masking

Ejemplo de Filtro de Media geométrica (I2=spfilt(I, 'gmean', 3, 3);)

Media geométricaImagen original

Filtros no lineales (IV)

Page 58: Filtros espaciales Aplicación del filtro unsharp masking

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 59: Filtros espaciales Aplicación del filtro unsharp masking

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)

Page 60: Filtros espaciales Aplicación del filtro unsharp masking

Ejemplo de Filtro de Media Contra-armónica (I2=spfilt(I, 'chmean‘,3, 3);)

Imagen original Media contraharmónico

Filtros no lineales (VII)

Page 61: Filtros espaciales Aplicación del filtro unsharp masking

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 62: Filtros espaciales Aplicación del filtro unsharp masking

¿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 63: Filtros espaciales Aplicación del filtro unsharp masking

¿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 64: Filtros espaciales Aplicación del filtro unsharp masking

¿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 65: Filtros espaciales Aplicación del filtro unsharp masking

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 66: Filtros espaciales Aplicación del filtro unsharp masking

Filtros usando Simulink

Filtro promedio

Fijar parámetros de simulación

Page 67: Filtros espaciales Aplicación del filtro unsharp masking

Filtros usando Simulink (II)

Page 68: Filtros espaciales Aplicación del filtro unsharp masking

Filtros usando Simulink (III)

Se define “fspecial’

Page 69: Filtros espaciales Aplicación del filtro unsharp masking

Filtros usando Simulink (IV)

Page 70: Filtros espaciales Aplicación del filtro unsharp masking

Filtros usando Simulink (V)

Video de una cámara conectada ó archivo.avi: Ver vipedge, sustituir por 2-D FIR Filter