¿Qué denota el dominio de frecuencia en el caso de las imágenes?

110

Estaba aprendiendo sobre el dominio de frecuencia en imágenes.

Puedo entender el espectro de frecuencia en caso de ondas. Denota qué frecuencias están presentes en una onda. Si dibujamos el espectro de frecuencia de , obtenemos una señal de impulso en y . Y podemos usar los filtros correspondientes para extraer información particular.cos(2πft)f+f

Pero, ¿qué significa el espectro de frecuencia en el caso de las imágenes? Cuando tomamos la FFT de una imagen en OpenCV, obtenemos una imagen extraña. ¿Qué denota esta imagen? ¿Y cuál es su aplicación?

Leí algunos libros, pero dan muchas ecuaciones matemáticas en lugar de implicaciones físicas. Entonces, ¿alguien puede proporcionar una explicación simple del dominio de la frecuencia en las imágenes con una simple aplicación del mismo en el procesamiento de imágenes?

Abid Rahman K
fuente
55
La mejor manera de entender lo que hace una transformación es jugar con la alimentación de entradas simples a la transformación inversa .
endolito
1
Vea también esta interesante explicación de Steve Eddins blogs.mathworks.com/steve/2009/12/04/…
Alessandro Jacopson
@endolith ¡Sí! que necesita un poco de conocimiento sobre el dominio de antemano para entender completamente lo que está sucediendo y por qué está sucediendo ..
SIslam
Estimado, el dominio de frecuencia de la imagen representa la intensidad de potencia en vatios con respecto a cierta frecuencia en hertiz, como (componente de CC, baja frecuencia y alta frecuencia)
mntaser

Respuestas:

93

Pero, ¿qué significa el espectro de frecuencia en el caso de las imágenes?

Las "ecuaciones matemáticas" son importantes, así que no las omita por completo. Pero el 2d FFT también tiene una interpretación intuitiva. Por ejemplo, he calculado la FFT inversa de algunas imágenes de muestra:

ingrese la descripción de la imagen aquí

Como puede ver, solo se establece un píxel en el dominio de frecuencia. El resultado en el dominio de la imagen (solo he mostrado la parte real) es un "patrón de coseno girado" (la parte imaginaria sería el seno correspondiente).

Si configuro un píxel diferente en el dominio de frecuencia (en el borde izquierdo):

ingrese la descripción de la imagen aquí

Me sale un patrón de frecuencia 2D diferente.

Si configuro más de un píxel en el dominio de frecuencia:

ingrese la descripción de la imagen aquí

obtienes la suma de dos cosenos.

Entonces, como una onda 1d, que se puede representar como una suma de senos y cosenos, cualquier imagen 2d se puede representar (hablando en términos generales) como una suma de "senos y cosenos rotados", como se muestra arriba.

cuando tomamos fft de una imagen en opencv, obtenemos una imagen extraña. ¿Qué denota esta imagen?

Denota las amplitudes y frecuencias de los senos / cosenos que, cuando se suman, le darán la imagen original.

¿Y cuál es su aplicación?

Realmente hay demasiados para nombrarlos a todos. La correlación y la convolución se pueden calcular de manera muy eficiente utilizando una FFT, pero eso es más una optimización, no se "mira" el resultado de FFT para eso. Se utiliza para la compresión de imágenes, porque los componentes de alta frecuencia generalmente son solo ruido.

Niki Estner
fuente
3
¿puede especificar cuál es la parte de alta frecuencia y cuál es la parte de baja frecuencia en la imagen del dominio de frecuencia?
Abid Rahman K
44
@arkiaz: En las imágenes que he mostrado, la frecuencia más alta está en el centro de la imagen, la frecuencia más baja (es decir, la media de la imagen de entrada) es el píxel superior izquierdo en el resultado FFT. Eso es lo que te dan la mayoría de las implementaciones de FFT. Si muestra el resultado FFT, es común mover la frecuencia más baja al centro de la imagen mostrada.
Niki Estner
1
@Mohammad: He usado la InverseFourierfunción de Mathematica . ¿Octave / matlab's ifft2no hacen lo mismo?
Niki Estner
1
@ JimClay Para imágenes en color, en realidad recomendaría usar el dominio YUV . Y = intensidad absoluta y UV = color. Incluso para imágenes en color, la mayor parte de la información que le interesa está en la parte de intensidad de la imagen. Utiliza las mismas herramientas matemáticas, solo recuerde volver a transformar.
Atav32
44
Serían geniales como animaciones, como mover el punto y mostrar cómo las ondas cambian de ancho y ángulo
endolito
29

Creo que esto se puso muy bien en la conocida "Guía DSP" ( capítulo 24, sección 5 ):

El análisis de Fourier se usa en el procesamiento de imágenes de la misma manera que con las señales unidimensionales. Sin embargo, las imágenes no tienen su información codificada en el dominio de la frecuencia, lo que hace que las técnicas sean mucho menos útiles. Por ejemplo, cuando la transformación de Fourier se toma de una señal de audio, la forma de onda confusa del dominio del tiempo se convierte en un espectro de frecuencia fácil de entender.

En comparación, tomar la transformación de Fourier de una imagen convierte la información directa en el dominio espacial en una forma codificada en el dominio de la frecuencia. En resumen, no espere que la transformación de Fourier lo ayude a comprender la información codificada en las imágenes.

Entonces, por supuesto, existe cierta estructura y significado detrás del patrón aparentemente aleatorio obtenido al tomar el DFT de una imagen típica (como el ejemplo a continuación), pero no está en una forma que el cerebro humano esté preparado para comprender intuitivamente, al menos con respecto a la percepción visual.

Imgur

Aquí hay otra exposición interesante y bastante legible de lo que está contenido en una transformada de Fourier de una imagen, y cómo se puede interpretar. Tiene una serie de imágenes que dejan muy claro cuál es la correspondencia entre la imagen transformada de Fourier y la original.

editar: eche un vistazo a esta página , que demuestra, casi al final, cómo se almacena la mayor parte de la información perceptivamente importante de una imagen en el componente de fase (ángulo) de la representación de frecuencia.

edición 2: otro ejemplo del significado de fase y magnitud en la representación de Fourier: "Sección 3.4.1, Importancia de fase y magnitud" del libro de texto " Fundamentos del procesamiento de imágenes " de TU Delft lo demuestra claramente:

Imgur

waldyrious
fuente
¡Oye! Intenté seguir el segundo enlace en su pregunta ( "otra exposición interesante y bastante legible ..." ) pero el enlace no funciona. También probé el enlace proporcionado en los comentarios, pero no funciona. ¿Podría encontrar y editar en un enlace de trabajo por favor?
Penélope
@penelope eres la segunda persona en notar problemas con el enlace (mira mi comentario anterior). La página parece ser inestable, de hecho. Como dije anteriormente, reemplazaré el enlace con la versión Web Archive. ¡Gracias por señalar esto!
waldyrious
1
En realidad, los ejemplos y explicaciones en el enlace (finalmente funcionando) son geniales :)
penelope
12

La onda es una onda unidimensional; depende solo de . La onda es una onda bidimensional. Depende de e . Como puede ver, tiene dos frecuencias, en cualquier dirección.f(t)=cos(ωt)tf(x,y)=cos(ωx+ψy)xy

Por lo tanto, la transformada de Fourier (FFT) de te dará , al igual que la FFT de te da . Y si su entrada es una función que suma cosenos 2D, entonces su FFT 2D será la suma de las frecuencias de esos cosenos, de nuevo un análogo directo de la FFT 1D.cos(ωx+ψy)ω,ψcos(ωx)ω

MSalters
fuente
10

Vale la pena señalar que el Análisis de Fourier es un caso especial de un concepto llamado funciones ortogonales . La idea básica es dividir una señal complicada en una superposición lineal de funciones "básicas" más simples. Puede realizar su procesamiento o análisis en función de las funciones básicas y luego sumar los resultados de las funciones básicas para obtener el resultado de la señal original.

Para que esto funcione, existen ciertos requisitos matemáticos para las funciones básicas, es decir, idealmente forman una base ortonormal. En el caso de la Transformada de Fourier, las funciones básicas son exponenciales complejos. Sin embargo, hay muchas otras funciones que también se pueden usar para eso.

Hilmar
fuente
Es verdad. ¿Qué otros tipos de funciones básicas hay? Estoy pensando en las daubechies wavelets, pero ¿hay otras también? ¿Qué los diferenciaría?
Spacey
Probablemente los más conocidos son los polinomios; La representación de una función como un conjunto de polinomios se conoce como su serie Taylor . Esta serie se calcula fácilmente a partir de las funciones derivadas.
MSalters
2
Una forma de encontrar funciones básicas es aplicar el Análisis de componentes principales . Las 'imágenes propias' resultantes a menudo tienen una apariencia más intuitiva para el ser humano que las funciones sin / cos. Para un ejemplo, vea Eigenfaces . El dominio de la frecuencia sigue siendo relevante para la percepción (nuestros ojos / cerebros tienen detectores de bordes que son sensibles a la frecuencia, particularmente cuando hay movimiento involucrado); Las funciones básicas no son tan significativas como las imágenes.
Dan Bryant
PCA es una buena técnica de cálculo básico que se entiende ampliamente, pero hay muchos otros que hacen diferentes suposiciones sobre cómo se generaron los datos; El análisis de componentes independientes (ICA) es un ejemplo popular. Un poco más lejos, hay algoritmos para el aprendizaje de funciones básicas genéricas que utilizan codificación dispersa (por ejemplo, J Mairal et al., "Aprendizaje de diccionario en línea para codificación dispersa", ICML 2009), y luego los enfoques de "aprendizaje de características" desarrollados por las redes profundas. amigos
lmjohns3
1
¿Por qué las funciones tienen que ser ortogonales?
quantum231
8

En las imágenes, la frecuencia creciente se asocia con transiciones más bruscas en brillo o color. Además, el ruido suele estar integrado en el extremo superior del espectro, por lo que se puede utilizar el filtrado de paso bajo para reducir el ruido.

Emre
fuente
1
¿Quieres decir que las transiciones bruscas a veces se consideran ruido?
Abid Rahman K
1
Sí a veces. Los ejemplos comunes incluyen ruido de mosquito (sonando alrededor de los bordes), ruido de bloque JPEG en los bordes de los macrobloques y, por supuesto, grano. Considere una imagen de un gradiente simple. Agregar grano a esta imagen aumenta su contenido de alta frecuencia al introducir transiciones diminutas en toda la imagen.
Emre