Procesamiento de Imágenes Abel Fernández Laborda Pablo López Mozas
¿Qué es una imagen? O 3 matrices (R, G, B) 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)
Matriz de convolución Se basan en aplicar sobre cada punto de la matriz un cálculo basado en los puntos vecinos. K se suele eliminar dividiendo cada wi
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:
Matriz de convolución (VI) x +x 1 3 4 6 7 x +x + x 1 2 5 4 3 8 7 6 x +x + x 6 7 1 8 2 3 4 5 x +x + x 3 6 7 4 8 5 1 2
Transformada de Fourier Obtiene el espectro frecuencial de una señal periódica. Usos: recocimiento, compresión, ...
Transformada de Fourier (II) Se define como: Y para el caso continuo: 1/N es un factor de escala. En muchos casos se suele elimnar.
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:
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:
Transformada rápida (II) Orden (N log(N))
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