Procesamiento de Imágenes Abel Fernández Laborda Pablo López Mozas.

Post on 24-Jan-2016

224 views 1 download

Transcript of Procesamiento de Imágenes Abel Fernández Laborda Pablo López Mozas.

Procesamiento de Imágenes

Abel Fernández Laborda

Pablo López Mozas

¿Qué es una imagen?

Una matriz de puntos

Procesamiento de imágenes Primera aproximación a posibles

algoritmos paralelos: Algoritmos generales sobre matrices.

No es suficiente: Necesitamos conocer los tipos de procesamiento.

Clasificación Dos puntos de vista:

Por propósito. Por algoritmo.

Propósitos diferentes comparten algoritmos y existen diversos algoritmos para un mismo propósito. Nos interesa la clasificación por algoritmo.

Clasificación (II)

Procesamiento individual de puntos.

Basados en matrices de convolución.

Transformada de Fourier.

Procesamiento de puntos Se basan en un tratamiento individual de

cada punto de la imagen.

Pertenecen a este grupo: Brillo / Contraste Umbral Histograma

Procesamiento de puntos (II) Algoritmo secuencial

for (i=0; i<N; i++)

for (j=0; j<M; j++)

imagen[i][j] = calculo(imagen[i][j]);

Orden (NM)

Procesamiento de puntos (III)

Posibles algoritmos paralelos: Particionamiento de la matriz.

Al no existir comunicación entre procesos el speedup es casi lineal. Orden (NM/P)

w0 w1 w2

w3 w4 w5

w6 w7 w8

543 xxxx xx6 7 8

x x1x0 2

x4

'

Máscara Imagen Resultado

Matriz de convolución Se basan en aplicar sobre cada punto de la

matriz un cálculo basado en los puntos vecinos.

k

xwxwxwxwxwxwxwxwxwx 887766554433221100'4

Matriz de convolución (II) Pertenecen a este grupo:

Desenfoque Enfoque

Y con variaciones en el cálculo: Eliminación de ruido Detección de bordes

Matriz de convolución (III) Algoritmo secuencial:

for (i=0; i<N; i++)

for (j=0; j<M; j++)

x[i][j] = w[0]*x[i-1][j-1] + w[1]*x[i-1][j] + ...;

Orden (NM)

Matriz de convolución (IV) Posibles algoritmos paralelos:

Particionamiento de la matriz.

Dos problemas: Dependencias. Múltiples lecturas.

Matriz de convolución (V) Caso especial: wi=wj, i,j

Algoritmo en 4 etapas:

x +x0 1

x +x3 4

x +x6 7

x +x + x

0x +x + x

6 7

1

8

2

x +x + x0 1 2

x +x + x3 4 5

x +x + x

3x +x + x

6 7

4

8

5

x +x + x0 1 2

x +x + x0 1 2

x +x + x6 7 8

x +x + x0 1 2

543x +x + x

876x +x + x

Matriz de convolución (VI)

Transformada de Fourier Obtiene el espectro frecuencial de una

señal periódica.

50 100 150 200 250

2

4

6

8

50 100 150 200 250

-1.5

-1

-0.5

0.5

1

1.5

Transformada de Fourier (II) Se define como:

dtetxfX ift2)()(

Y para el caso continuo:

1

0

21 N

j

N

jki

jk exN

X

Transformada de Fourier (III) Una imagen, en este contexto, es una señal discreta bidimensional. Por

tanto, para calcular la transformada utilizamos la siguiente función:

1

0

1

0

2N

j

M

k

M

km

N

jli

jklm exX

Transformada de Fourier (IV) Algoritmo secuencial (caso

unidimensional):

for (k=0; k<N;k++) X[k] = 0;for (j=0; j<N; j++)

X[k] = X[k] + wjk x[j];

Orden (N2)

Transformada rápida Es un algoritmo divide y vencerás:

1

0

1 N

j

jkjk wx

NX

12/

0

1212

12/

0

22

1 N

j

kjj

N

j

jkjk wxwx

NX

12/

0

212

12/

0

22 2/

1

2/

1

2

1 N

j

jkj

kN

j

jkjk wx

Nwwx

NX

Transformada rápida (II)

impark

park XwXX 2

1

Orden (N log(N))

15,711,313,59,110,610,212,48,0 kkkkkkkk wwwwwwwx

15,11,7,313,9,5,114,10,6,212,8,4,0 kkkk wwwx

15,13,11,9,7,5,3,114,12,10,8,6,4,2,0 kk wx

15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0kx

0

1x

2x

3x

4x

5x

6x

7x

8x

9x

10x

11x

12x

13x

14x

15x

7X

12X

15

14

13

XXX

11

10

9

8

XX

XX

X

6

5

4

3

2

XX

XX

1

0

X

Transformada rápida (III)

Bibliografía

“Parallel programming”. Barry Wilkinson, Michael Allen. Prentice-Hall. 1999.

“Parallel algorithms for digital image processing, computer vision and neural networks”. Ioannis Pitas (Editor). John Wiley & sons. 1993