Está en la página 1de 13

Anlisis de Seal

Convolucin de Imgenes
Csar Crespo Martn
cesar.crespo@telefonica.net
Filtro como sistema LTI
Lineal
Invariante en el tiempo
Convolucin: Interpretacin Analtica
Hay varias posibles notaciones para indicar la convolucion de dos seales
(multi-dimensionales) para producir una seal de salida. Las ms comunes
son:
En el espacio continuo 2D:
En el espacio discreto 2D:
Convolucin: Interpretacin Grfica
Ncleo de convolucin mxn
Imagen MxN
a h
JxK
c
La aplicacin de estos filtros se basa en la inspeccin de los vecinos de un pxel
a(i,j) y una mscara o ncleo de convolucin h de JxK.
El pxel resultante es la suma ponderada de los pxeles por el peso q indica el
ncleo de convolucin.
Rescribiendo los ndices para centrar h:
Filtros:
Dependiendo del ncleo de convolucin que apliquemos obtendremos
distintos efectos, as como variando el tamao de la matriz de convolucin
Filtro Promedio Estndar:
Filtro Promedio Pesado:
1 1 1
1 1 1
1 1 1
h =
1
9
-1 -1 -1
-19A-1-1
-1 -1 -1
h =
1
9A
Filtro Paso Alto Bsico:
-2 -1 0
-1 0 1
0 1 2
h =
1
9
1 1 1
1 N 1
1 1 1
h =
1
N+8
Detector de bordes de Sobel
Filtro Promedio Estndar (Pasa Bajo):
Normalmente los filtros se normalizan para que h[j,k] = 1
Es el filtro ms simple y se basa en
el promedio aritmtico de los primeros
vecinos de un pxel.
1 1 1
1 1 1
1 1 1
h =
1
9
Se encargan de atenuar la
informacin de alta frecuencia,
dejando inalterado la de baja
frecuencia
Este filtro tiene las propiedades de
suavizar, eliminar ruido y difuminar
bordes
Filtro Promedio Pesado:
Este se basa en el promedio aritmtico de
los primeros vecinos de un pxel, dndole
mayor peso al pxel del centro (N>1),
h =
1
N+8
1 1 1
1 N 1
1 1 1
Ejemplo con N=8
Los efectos de este filtro son similares al
promedio estndar y su efecto depende del valor
de N. A mayor valor de N se da ms importancia
al pxel central.
Filtro Paso Alto Bsico:
Para realizar el realce se da un peso alto al pxel
central y a los primeros vecinos un peso negativo
bajo
-1 -1 -1
-19A-1-1
-1 -1 -1
h =
1
9A
Se encargan de atenuar la informacin de baja
frecuencia, dejando inalterado la de alta frecuencia
A>1
Puede notarse que la suma de los pesos es 0.Por lo
tanto el valor resultante ser pequeo o 0 para las
zonas de tono constante
Ejemplo con A=1
Este filtro realiza una mejora en los bordes de la
imagen sobre un fondo oscuro.
Mientras mayor sea A respecto a 1
el efecto de realce ser mayor
Detector de bordes de Sobel
-2 -1 0
-1 0 1
..0 1 2
h =
1
9
Estos filtros detectan los
bordes segn la orientacin
q indique el ncleo de
convolucin.
Otros ncleos de convolucin:
Otros filtros de Sobel:
Bordes Verticales Bordes Horizontales Laplaciano
1 2 1
0 0 0
-1 -2 -1
1 1 1
0 0 0
-1 -1 -1
1 0 -1
2 0 -2
1 0 -1
0 -1 0
-1 4 -1
0 -1 0
1 0 -1
1 0 -1
1 0 -1
Implementacin:
int RealizarConvolucion(imageType imagen, int i, int j, mask_t nucleo){
int resultado;
resultado =(int)(nucleo.mask[0][0]*imagen[i-1][j-1]+
nucleo.mask[0][1]*imagen[i-1][j]+
nucleo.mask[0][2]*imagen[i-1][j+1]+
nucleo.mask[1][0]*imagen[i][j-1]+
nucleo.mask[1][1]*imagen[i][j]+
nucleo.mask[1][2]*imagen[i][j+1]+
nucleo.mask[2][0]*imagen[i+1][j-1]+
nucleo.mask[2][1]*imagen[i+1][j]+
nucleo.mask[2][2]*imagen[i+1][j+1])/nucleo.factor;
return resultado;
}
for(i=1;i<Ny-1;i++){
for(j=1;j<Nx-1;j++){
switch(atoi(argv[1])){
default:
case 0:
img_conv[i][j] = RealizarConvolucion(imagen, i, j, emborr_mask);
break;
case 1:
img_conv[i][j] = RealizarConvolucion(imagen, i, j, embor2_mask);
break;
case 2:
img_conv[i][j] = RealizarConvolucion(imagen, i, j, front1_mask);
break;
case 3:
img_conv[i][j] = RealizarConvolucion(imagen, i, j, front2_mask);
break;
}
}
}
Implementacin Paralela:
La convolucion de imgenes es de complegidad O(MxN)
Algoritmo fcilmente paralelizable :
Dividiendo la imagen entre cada uno de los
nodos de la topologa
Dos filosofas:
MPI / PVM
Mosix
Posibles aplicaciones:
Visin Artificial
Tratado de imgenes de Satlites o
telescopios
Filtros inversos de desemborronado
etc
Bibliografa:
Image Processing:
NATO: www.nato.int/science/index.html
NATO Advanced Study Institute: www.cs.umb.edu/~asi/multimedia/index.html
Pattern Recognition group: http://www.ph.tn.tudelft.nl/Courses/FIP/noframes/fip-Contents.html
Convolution kernels: http://www.cs.jhu.edu/~wolff/course600.461/week2.2/sld006.htm
http://www.pcigeomatics.com/cgi-bin/pcihlp/FSOBEL
http://www.iit.edu/~grfilter/
http://www.jhlabs.com/
GOOGLE:
Image processing: http://www.google.com/search?q=image+processing&ie=UTF-8&oe=UTF-8&hl=es&lr=
Image filtering: http://www.google.com/search?hl=es&ie=UTF-8&oe=UTF-8&q=image+filtering&lr=
LSI (LTI) systems: http://www.google.com/search?hl=es&ie=UTF-8&oe=UTF-8&q=lsi+lti+systems&lr=
Convolution kernels: http://www.google.com/search?q=convolution+kernels&ie=UTF-8&oe=UTF-8&hl=es&lr=
Perl
www.perl.com
PHP
www.php.net
Parallel Computing
www.lam-mpi.org
www.mosix.org/txt_main.html

También podría gustarte