Funciones > Procesamiento de imágenes > Dominio de transformada > Ejemplo: filtrado en el dominio de la transformada de Fourier
  
Ejemplo: filtrado en el dominio de la transformada de Fourier
Utilice las funciones funconv, matconv, funcdeconv y matdeconv para convolucionar o deconvolucionar una imagen con una función, f, o una máscara E, multiplicándolas en una frecuencia espacial (dominio de transformada de Fourier). El filtrado en el dominio de frecuencias puede dar lugar a una serie de operaciones de suavizado, detección de bordes y reducción periódica del ruido, según la función o la máscara elegida. A menudo, desde la perspectiva matemática, resulta más eficaz filtrar en el dominio de transformada, o resulta más fácil definir filtros que utilizar la convolución en el dominio de imágenes.
Para obtener información sobre el uso de este ejemplo, consulte Acerca de los ejemplos de procesamiento de imágenes
funconv
Utilice esta función para filtrar una imagen M con una función en una frecuencia espacial. La función de valores reales f se utiliza para crear una máscara, N, del mismo tamaño que M. M se transforma con Fourier y, después, se multiplica por la máscara, término por término.
La máscara se crea pasando argumentos a f, que son la distancia normalizada de la esquina superior izquierda de M. Este proceso continúa hasta el centro de la máscara, donde se duplica la máscara en cuatro tramos simétricos. Este proceso se utiliza porque la esquina superior izquierda es CC (frecuencia cero).
1. Para empezar a crear una máscara, defina la matriz de imagen M.
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
2. Busque el píxel que representa el centro de la matriz de imagen.
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
3. Cree nuevas variables de rango que representen los valores que van desde la esquina superior izquierda hasta el centro de la imagen.
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
4. Utilice las variables de rango definidas y una función de máscara para crear el cuadrante superior izquierdo de la máscara.
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
La entrada (0, 0) es f(0) y la entrada (r, c), f(1).
La máscara se crea pasando argumentos (la distancia normalizada de la esquina superior izquierda de M) a f. Este proceso continúa hasta el centro de la máscara, donde se duplica la máscara en cuatro tramos simétricos. Este proceso se utiliza porque la esquina superior izquierda es CC (frecuencia cero).
5. Cree el resto de la matriz de máscara con funconv.
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
Si la convolución expande la escala de la imagen, se puede aplicar una escala a la matriz de salida según el rango [0, 255].
funcdeconv
Esta función de deconvolución toma una imagen de frecuencia-dominio y una función de frecuencia-dominio y anula su combinación.
El último argumento de funcdeconv e es un término pequeño que se añade a los denominadores de todas las expresiones durante la rutina. Como punto de partida, escriba un valor de 0 para e. Si aparece un mensaje de error de dividir por cero, escriba un valor pequeño para e.
1. Llame a la función funcdeconv.
Pulse aquí para copiar esta expresión
2. Evalúe DE para ver el resultado de funcdeconv y compárelo con la matriz original.
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
matconv
Las funciones matconv realizan las mismas transformadas y multiplicación de frecuencia-dominio que funconv, pero admiten una máscara como entrada, en vez de una función. La máscara debe tener el mismo tamaño que la imagen original. Solo debe proporcionar el cuadrante superior izquierdo de la máscara.
1. Lea una imagen de muestra.
Pulse aquí para copiar esta expresión
2. Cuente el número de filas y columnas de la matriz de imagen.
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
3. Defina las dimensiones de una máscara.
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
4. Defina la máscara C.
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
* 
Pruebe el siguiente filtro de paso alto para C:
Pulse aquí para copiar esta expresión
5. Aplique matconv a R y C.
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
R
C
W
(times.bmp)
(matrix_ii_jj.bmp)
(times_mat.bmp)
matdeconv
Utilice matdeconv para recuperar la imagen original. Potencialmente, la deconvolución implica la división por elementos de intensidad cero, por lo que e se añade al denominador de cada división para eliminar este problema.
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
(matdeconv.bmp)
Se puede experimentar con otras funciones de filtro, teniendo en cuenta que la esquina superior izquierda de la máscara corresponde a las frecuencias bajas y la esquina inferior derecha, a las frecuencias altas. Pruebe diferentes imágenes.