Filtros espaciales Aplicación del filtro unsharp masking.

Slides:



Advertisements
Presentaciones similares
UNIVERSIDAD DE ORIENTE NUCLEO DE BOLIVAR COORDINACION GENERAL DE ESTUDIOS DE POSTGRADO POSTGRADO EN CIENCIAS ADMINISTRATIVAS MENCION FINANZAS. V COHORTE.
Advertisements

Propiedades de los Reales
Maestro Sr. Jaime O. López López
Paso 1 Portada YO SOY EUROPEO Comisión Europea.
Matemática Financiera 1º ADEUtilización de la Función TIR en el cálculo del tanto efectivo 1 de 37 Cálculo de tantos efectivos Utilización de la función.
4. ANÁLISIS FACTORIAL Introducción Modelo factorial ortogonal
DETERMINANTES.
UNIVERSIDAD DE ORIENTE NUCLEO DE BOLIVAR COORDINACION GENERAL DE ESTUDIOS DE POSTGRADO POSTGRADO EN CIENCIAS ADMINISTRATIVAS MENCION FINANZAS. VII COHORTE.
UNIVERSIDAD DE ORIENTE NUCLEO DE BOLIVAR COORDINACION GENERAL DE ESTUDIOS DE POSTGRADO POSTGRADO EN CIENCIAS ADMINISTRATIVAS MENCION FINANZAS. VI COHORTE.
ECUACIONES LINEALES.
Otra forma es representando lo que hay de cada lado
Métodos Cuantitativos Aplicados a Los Negocios.
Razonamiento Cuantitativo
Apuntes 2º Bachillerato C.T.
PROPIEDADES DE LOS DETERMINANTES
Unidad 1: Funciones, Límite y Continuidad
Funciones Continuas. Contenidos Definición de Continuidad Funciones Discontinuas Teoremas Ejemplos.
Tema 3: Filtros SEGUNDA PARTE.
Estadística Administrativa I
Introducción a Simulink
UPC Tema: ESPACIO VECTORIAL Rn
DESCRIPCION DE SISTEMAS
Sistemas de Ecuaciones
2.1 – Expresiones algebraicas
Operaciones con expresiones algebraicas
Bloques aleatorizados, cuadrados latinos y diseños relacionados
UNIDAD 3 Progresiones.
Ecuaciones y Resolución de Ecuaciones Lineales
Expresiones Racionales
Exponentes Racionales y Radicales
Desigualdades Lineales y Compuestas
Por: Alex F. Guerrero E. Fecha: 04/02/2010
Filtros y Detectores de Borde
Tema 6 La demanda del mercado.
KRIGING.
Problemas de Valores en la Frontera en Coordenadas Rectangulares
Ecuaciones de primer grado Similar al ejercicio 1 propuesto
7. Extracción de Contornos
6. Filtrado. Universidad de Valladolid.
Curso de Hidrología Caudales Máximos II
DETERMINANTES DE UNA MATRIZ
Números enteros.
Unidad 2 Expresiones algebraicas
MÁSCARAS DE CONVOLUCIÓN PARA LA DETECCIÓN DE BORDES.
Funciones: Conceptos Básicos
UPC MATRICES MA49 (EPE) Universidad Peruana de Ciencias Aplicadas
Lic. Mat. Helga Kelly Quiroz Chavil
Manuel Mazo,Daniel Pizarro. Departamento de Electrónica 1 Manuel Mazo Quintas Daniel Pizarro Pérez Departamento de Electrónica. Universidad de Alcalá.
ESTADIGRAFOS DE DISPERSION
Ecuaciones En esta unidad se van a estudiar o recordar los siguientes puntos: Diferencias entre ecuaciones e identidades Resolución de ecuaciones de primer.
Capítulo 2. Representación de imágenes digitales
Capitulo 2 Filtrado Filtrado Espacial Visión de Máquina
Procesamiento Digital de Imágenes y Visión
La segmentación de imágenes se ocupa de descomponer una imagen en sus partes constituyentes, es decir, los objetos de interés y el fondo, basándose en.
Aplicados a la herramienta de Matlab
Introducción al procesamiento de imágenes
PROCESAMIENTO EN EL DOMINIO DEL ESPACIO. Se entiende por procesamiento en el dominio del espacio, la realización de operaciones directamente sobre el valor.
Tema 4. Realzado de imágenes  Qué vamos a estudiar  ¿Qué vamos a estudiar? Un conjunto de técnicas que tratan de conseguir una imagen mejorada y más.
Procesamiento de imágenes
Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.
Statistic Filters El filtro de mediana. Este tipo de filtro pertenece al grupo de filtros de orden estadístico, los cuales son filtros que no cumplen con.
Tema 3: Filtros.
Variables estadísticas bidimensionales
Filtros.
1 Image Segmentation Chapter 9 Dr. Mario Chacón DSP & Vision Lab.
Tema 6: Morfología Segunda parte.
Procesamiento Digital de Imágenes
El uso de las máscaras espaciales
DETECCION DE SEÑALES BINARIAS EN RUIDO GAUSSIANO El criterio de toma de decisión fue descrito por la ecuación Un criterio muy usado para escoger el nivel.
INTRODUCCIÓN A LAS MATRICES CON MATLAB
Transcripción de la presentación:

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

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 seleccionado 4.- 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.

Operaciones basadas en vecindades (II) Ejemplo: Máximo de una vecindad de 3x3 Imagen de entrada (I) Imagen de salida (I1) 6 14 10 4 3 11 16 17 20 15 5 13 2 7 16 17 20 6 15 10 5 7 4 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

Operaciones basadas en vecindades (III) Ejemplo: Mínimo de una vecindad de 3x3 Imagen de entrada (I) Imagen de salida (I1) 6 14 10 4 3 11 16 17 20 15 5 13 2 7 6 10 4 3 2 Lo cual se realizaría con el siguiente programa Matlab >> f=inline('min(x(:))'); >> I1=nlfilter(I,[3, 3],f);

Operaciones basadas en vecindades (IV) El problema del contorno Imagen de entrada Imagen de salida 6 14 10 4 3 11 16 17 20 15 5 13 2 7 6 10 4 3 2 1 2 3 1 2 3 . . . . 1 2 3 4 5 n m

Operaciones basadas en vecindades (V) Solución: Relleno de píxeles Imagen de salida Imagen de entrada . . . . 1 2 3 4 5 n 1 2 3 m 1 2 3 . . . . 1 2 3 4 5 n 1 2 3 m Rellenar contorno sin alterar la imagen original: máscara= [0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0] Función: imfilter (‘La_imagen.jpg’, máscara, relleno, salida) ‘same’: Mismo tamaño imagen original ‘full’: Tamaño resultante con relleno (mayor)

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 w = [0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0] >> imfilter(f,w,25,'full')

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 w = [0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0] >> imfilter(f,w,’replicate' ,'full')

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 w = [0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0] >> imfilter(f,w,’ symmetric ‘,'full')

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 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0] >> imfilter(f,w,0,’ same')

Filtros espaciales Responden a la siguiente ecuación: donde: f(x+s, y+t): Valor de los píxeles del bloque seleccionado w(s, t): Coeficientes que se aplicarán al bloque (máscara) Siendo la matriz del bloque: m(filas) = 2a + 1 n(columnas) = 2b + 1

Filtros espaciales (II) 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 (III) Valores de los píxeles del bloque 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 de los coeficientes (máscara) 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)

Filtros espaciales (IV) 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 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

Filtros espaciales (V) Pasos para la aplicación del filtro lineal: 1.- Definir la máscara 2.- Definir tipo de relleno 3.- Aplicar la ecuación: 4.- Definir tamaño de la imagen de salida

Filtros espaciales (VI) Ejemplos de filtros Filtro promedio: Filtro promedio ponderado:

Filtros espaciales (VII) 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); Original Resultado >> 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

Filtros espaciales (VIII) Original

Filtros espaciales (IX) Original >> imhist(I) >> imhist(I2)

Filtros espaciales (X) Formas de aplicar la máscara 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 Imagen Máscara f = 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 w = 1 2 3 4 5 6 7 8 9 >> imfilter(f,w,'corr') >> imfilter(f,w,'conv')

Imágenes ruidosas 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. Ruído

Imágenes ruidosas (II) Escáner de una letra con y sin ruído >>[R,Q] = size(G); >>G_ruidosa = G + randn(R,Q)*0.2 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

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)

Imágenes ruidosas (IV) III=imnoise(I,'poisson');

Imágenes ruidosas (V) IV=imnoise(I,'salt & pepper');

Imágenes ruidosas (VI) V=imnoise(I,'speckle');

Supresión de ruido con filtro promedio >> w=ones(3,3)/9; >> I2=imfilter(I,w); IV=imnoise(I,'salt & pepper');

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

Filtro Laplaciano (II) Si se cumple: Entonces: Si la función depende de dos variables

Filtro Laplaciano (III) Función dependiente de dos variables La derivada de segundo orden con respecto a al variable x: De forma similar, con respecto a y: Finalmente:

Filtro Laplaciano (IV) El Laplaciano queda definido por: La anterior expresión es equivalente a aplicar una máscara definida por: w = 0 1 0 1 -4 1

Filtro Laplaciano (V) Alternativa: % 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); Alternativa: >> I=imread('moon.tif'); >> w=fspecial('laplacian',0); >> I2=imfilter(I,w,'replicate');

Filtro Laplaciano (VI) Imágenes: www.imageprecessingplace.com

Filtro Laplaciano (VII) Si se desea considerar las variaciones con respecto a la diagonal w = 0 1 0 1 -4 1 w = 1 1 1 1 -8 1 -4 +1 También se utiliza el negado de las anteriores máscaras w = -1 -1 -1 -1 8 -1 w = 0 -1 0 -1 4 0

Se emplea en pocas ocasiones en la práctica 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 Se utiliza para realzar una imagen Sumar o restar el Laplaciano de la imagen dependiendo del signo del coeficiente central de la máscara utilizada Coeficiente central de la máscara negativo Coeficiente central de la máscara positivo

Filtros Laplacianos alternativos (II) Resultado de sustraer el Laplaciano (una única máscara) Incluye diagonal

Filtro Gaussiano La máscara o filtro que responde a: ó Siendo la matriz del bloque: m(filas) = 2a + 1 n(columnas) = 2b + 1 ó

Filtro Gaussiano (II) Influencia del parámetro 

Filtro Gaussiano (III) Máscara a partir de función no lineal Filtro que se aplica es lineal %Define máscara >> fspecial('gaussian',3,0.5) ans = 0.0113 0.0838 0.0113 0.0838 0.6193 0.0838 0.0113 0.0838 0.0113 % Máscara y filtro >> w=fspecial(‘gaussian',3,0.5); >> I2=imfilter(I,w,'replicate'); 0.0478 0.1163 0.2829

Laplaciana de la gausiana

Laplaciana de la gausiana (II) >> w=fspecial('log',5,0.4) ans = 0.2475  0.2475  0.2479  0.2475  0.2475 0.2475  0.3545  1.2336  0.3545  0.2475 0.2479  1.2336 -10.31   1.2336  0.2479 0.2475  0.3545  1.2336  0.3545  0.2475 0.2475  0.2475  0.2479  0.2475  0.2475 >>surf(w) >>surf(-w)

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)

Máscaras con fspecial Disco Promedio >> w = fspecial('disk',4) >> w = fspecial('average',5) w = 0.0400 0.0400 0.0400 0.0400 0.0400 >> 1/25 ans = 0.0400

Ejemplo: Promedio >> w=fspecial('average');

Máscaras con fspecial (II) Gausiana >>z = fspecial('gaussian',5,0.7) Laplaciana de la gausiana >> z = fspecial('log',5,0.7)

Ejemplo: Filtro Gaussiano >> w=fspecial('gaussian');

Máscaras con fspecial (III) Laplaciana >>z = z = fspecial('laplacian',0.3) Mejora de contraste >> z = fspecial('unsharp',0.3) >> fspecial('laplacian',0) 0 1 0 1 -4 1 >> fspecial('unsharp',0) 0 -1 0 -1 5 -1

Filtro para acentuar contraste >> w=fspecial('unsharp');

Acentuar transiciones horizontales y verticales Máscaras con fspecial (IV) Acentuar transiciones horizontales y verticales Prewit: 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

Ejemplo: Filtro Prewit >> w=fspecial('prewitt');

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

Aplicación Supresión de ruído Filtros no lineales Filtro lineal 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 Filtro no lineal Bloque de píxeles 1 1 1 >>B = nlfilter(A, [m n], función_nl) Aplicación Supresión de ruído

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 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 A = imread(‘imagen.jpg'); fun = @(x) mean(x(:)); B = nlfilter(A,[3 3],fun);

Filtros no lineales (II) Ejemplo de Filtro de Media aritmética

Filtros no lineales (III) Filtro de Media geométrica Filtro de Media armónica Función spfilt: Gonzáles, R.; Woods, R.; Eddins, S.: Digital Image Processing Using Matlab. 2004

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

Filtros no lineales (V) Ejemplo de Filtro de Media armónica >> I2=uint8(3*3./imfilter(1./I, ones(3, 3), 'symmetric'))

Filtros no lineales (VI) Filtro de Media Contra-armónica Filtro de Punto medio

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

Filtros no lineales (VIII) 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));

¿Cuál filtro utilizar? Verificar como se difuminan los bordes después de aplicar el filtro >>I=imread('contornos.tif'); % Se determinan los bordes verticales >> II=edge(I, 'sobel', 'vertical'); imshow(II)

¿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)

¿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)

Resultado Calidad por siguiente orden: Mediana Promedio Punto medio % 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: Mediana Promedio Punto medio Media armónica Frente a ruido: Sal y Pimienta

Filtros usando Simulink Filtro promedio Fijar parámetros de simulación

Filtros usando Simulink (II)

Filtros usando Simulink (III) Se define “fspecial’

Filtros usando Simulink (IV)

Filtros usando Simulink (V) Video de una cámara conectada ó archivo.avi: Ver vipedge, sustituir por 2-D FIR Filter