O que o domínio da frequência indica em caso de imagens?


110

Eu estava apenas aprendendo sobre o domínio da frequência nas imagens.

Eu posso entender o espectro de frequências em caso de ondas. Denota quais frequências estão presentes em uma onda. Se desenharmos o espectro de frequência de , obtemos um sinal de impulso em e . E podemos usar os filtros correspondentes para extrair informações específicas.cos(2πft)f+f

Mas o que significa espectro de frequências no caso de imagens? Quando tiramos a FFT de uma imagem no OpenCV, obtemos uma imagem estranha. O que essa imagem indica? E qual é a sua aplicação?

Eu li alguns livros, mas eles dão muitas equações matemáticas, e não a implicação física. Então, alguém pode fornecer uma explicação simples do domínio da frequência nas imagens com uma simples aplicação no processamento de imagens?


5
A melhor maneira de entender o que uma transformação faz é brincar com a alimentação de entradas simples para a transformação inversa .
Endolith

1
Veja também esta interessante explicação de Steve Eddins blogs.mathworks.com/steve/2009/12/04/…
Alessandro Jacopson

@endolith Yeah! você precisa de algum conhecimento sobre domínio de antemão para entender completamente o que está acontecendo e por que está acontecendo ..
SIslam

querido o domínio da imagem de frequência representam a intensidade de potência em watts, com respeito à frequência determinada em hertiz tais como (componente DC, de baixa frequência e de alta frequência)
mntaser

Respostas:


93

Mas o que significa espectro de frequências no caso de imagens?

As "equações matemáticas" são importantes, portanto, não as pule completamente. Mas a 2ª FFT também tem uma interpretação intuitiva. Para ilustração, calculei a FFT inversa de algumas imagens de exemplo:

insira a descrição da imagem aqui

Como você pode ver, apenas um pixel é definido no domínio da frequência. O resultado no domínio da imagem (eu apenas mostrei a parte real) é um "padrão de cosseno girado" (a parte imaginária seria o seno correspondente).

Se eu definir um pixel diferente no domínio da frequência (na borda esquerda):

insira a descrição da imagem aqui

Eu recebo um padrão de frequência 2D diferente.

Se eu definir mais de um pixel no domínio da frequência:

insira a descrição da imagem aqui

você obtém a soma de dois cossenos.

Assim, como uma onda 1d, que pode ser representada como uma soma de senos e cossenos, qualquer imagem 2d pode ser representada (falando livremente) como uma soma de "senos e cossenos girados", como mostrado acima.

quando tiramos uma imagem no opencv, obtemos uma imagem estranha. O que essa imagem indica?

Denota as amplitudes e frequências dos senos / cossenos que, quando somados, fornecerão a imagem original.

E qual é a sua aplicação?

Há realmente muitos para nomear todos eles. A correlação e a convolução podem ser calculadas com muita eficiência usando uma FFT, mas isso é mais uma otimização, você não "olha" para o resultado da FFT. É usado para compactação de imagem, porque os componentes de alta frequência geralmente são apenas ruído.


3
você pode especificar qual parte de alta frequência e qual parte de baixa frequência na imagem do domínio de frequência?
Abid Rahman K

4
@arkiaz: Nas imagens que mostrei, a frequência mais alta está no centro da imagem, a frequência mais baixa (ou seja, a média da imagem de entrada) é o pixel superior esquerdo no resultado da FFT. É o que a maioria das implementações de FFT oferece. Se você exibir o resultado da FFT, é comum mover a frequência mais baixa para o centro da imagem exibida.
Niki Estner

1
@ Mohammad: Eu usei a InverseFourierfunção do Mathematica . Oitava / Matlab não ifft2faz o mesmo?
Niki Estner

1
@ JimClay Para imagens coloridas, eu recomendaria usar o domínio YUV . Y = intensidade absoluta e UV = cor. Mesmo para imagens coloridas, a maioria das informações em que você está interessado está na parte de intensidade da imagem. Você usa as mesmas ferramentas matemáticas, lembre-se de voltar atrás.
Atav32

4
Estes seriam grandes como animações, como mover o ponto ao redor e mostrar como as ondas alterar largura e ângulo
endolith

29

Eu acho que isso foi colocado muito bem no conhecido "guia DSP" ( capítulo 24, seção 5 ):

A análise de Fourier é usada no processamento de imagens da mesma maneira que nos sinais unidimensionais. No entanto, as imagens não têm suas informações codificadas no domínio da frequência, tornando as técnicas muito menos úteis. Por exemplo, quando a transformação de Fourier é obtida de um sinal de áudio, a forma de onda confusa no domínio do tempo é convertida em um espectro de frequência fácil de entender.

Em comparação, a transformação de Fourier de uma imagem converte as informações diretas no domínio espacial em uma forma embaralhada no domínio da frequência. Em resumo, não espere que a transformação de Fourier o ajude a entender as informações codificadas nas imagens.

Portanto, existe, é claro, alguma estrutura e significado por trás do padrão aparentemente aleatório obtido pela captura da DFT de uma imagem típica (como o exemplo abaixo), mas não é de uma forma que o cérebro humano esteja preparado para entender intuitivamente, pelo menos em relação à percepção visual.

Imgur

Aqui está outra exposição interessante e bastante legível do que está contido em uma transformação de Fourier de uma imagem e como ela pode ser interpretada. Tem uma série de imagens que deixam bem claro qual é a correspondência entre a imagem transformada de Fourier e a imagem original.

editar: veja também esta página , que demonstra - próximo ao fim - como a maioria das informações perceptualmente importantes de uma imagem é armazenada no componente de fase (ângulo) da representação de frequência.

edit 2: outro exemplo do significado de fase e magnitude na representação de Fourier: "Seção 3.4.1, Importância da fase e magnitude" do livro de TU Delft " Fundamentos do processamento de imagens " demonstra isso claramente:

Imgur


Ei! Tentei seguir o segundo link na sua pergunta ( "outra exposição interessante e bastante legível ..." ), mas o link não está funcionando. Eu também tentei o link fornecido nos comentários, mas não funciona. Você poderia encontrar e editar em um link de trabalho, por favor?
Penelope

@penelope você é a segunda pessoa a perceber problemas com o link (veja meu comentário anterior). A página parece instável, de fato. Como eu disse anteriormente, substituirei o link pela versão do Web Archive. Obrigado por apontar isso!
waldyrious

1
Na verdade, os exemplos e explicações no link (finalmente trabalho) são grandes :)
penelope

12

A onda é uma onda unidimensional; depende apenas de . A onda é uma onda bidimensional. Depende de e . Como você vê, você tem duas frequências, em qualquer direção.f(t)=cos(ωt)tf(x,y)=cos(ωx+ψy)xy

Portanto, a transformada de Fourier (FFT) de fornecerá , assim como a FFT de fornece . E se sua entrada é uma função que soma cossenos 2D, então sua FFT 2D será a soma das frequências desses cossenos - novamente uma analogia direta da 1D FFT.cos(ωx+ψy)ω,ψcos(ωx)ω


10

Pode-se notar que a Análise de Fourier é um caso especial de um conceito chamado funções ortogonais . A idéia básica é que você divida um sinal complicado em uma superposição linear de funções "básicas" mais simples. Você pode fazer seu processamento ou análise com base nas funções e depois somar os resultados das funções básicas para obter o resultado do sinal original.

Para que isso funcione, existem certos requisitos matemáticos para as funções básicas, ou seja, elas formam idealmente uma base ortonormal. No caso da Transformada de Fourier, as funções básicas são exponenciais complexas. No entanto, existem muitas outras funções que podem ser usadas para isso também.


Isso é verdade. Que outros tipos de funções básicas existem? Estou pensando em wavelets daubechies, mas existem outras também? O que os diferenciaria?
Spacey

Provavelmente os mais conhecidos são os polinômios; a representação de uma função como um conjunto de polinômios é conhecida como sua série de Taylor . Essa série é facilmente calculada a partir das derivadas da função.
MSalters

2
Uma maneira de encontrar funções básicas é aplicar a Análise de Componentes Principais . As 'imagens próprias' resultantes geralmente têm uma aparência mais intuitiva ao ser humano do que as funções sin / cos. Para um exemplo, consulte Eigenfaces . O domínio da frequência ainda é relevante para a percepção (nossos olhos / cérebros possuem detectores de borda sensíveis à frequência, principalmente quando há movimento); as funções básicas não são muito significativas como imagens.
Dan Bryant

O PCA é uma boa técnica de computação básica, amplamente compreendida, mas existem muitas outras que fazem suposições diferentes sobre como os dados foram gerados; A Análise Independente de Componentes (ICA) é um exemplo popular. Um pouco mais longe, existem algoritmos para o aprendizado genérico de funções básicas usando codificação esparsa (por exemplo, J Mairal et al., "Aprendizagem de dicionário on-line para codificação esparsa", ICML 2009) e, em seguida, as abordagens de "aprendizado de recursos" desenvolvidas pelas redes profundas pessoal.
precisa saber é o seguinte

1
Por que as funções precisam ser ortogonais?
precisa saber é o seguinte

8

Nas imagens, o aumento da frequência está associado a transições mais bruscas de brilho ou cor. Além disso, o ruído é geralmente incorporado na extremidade alta do espectro, portanto a filtragem passa-baixo pode ser usada para redução de ruído.


1
então você quer dizer que transições abruptas às vezes são consideradas ruído?
Abid Rahman K

1
Sim as vezes. Exemplos comuns incluem ruído de mosquito (toque nas bordas), ruído de bloco JPEG nas bordas dos macroblocos e, é claro, grãos. Considere uma imagem de um gradiente simples. A adição de granulação a esta imagem aumenta seu conteúdo de alta frequência, introduzindo transições minuciosas em toda a imagem.
Emre

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.