FFT na parte não retangular da imagem

7

Preciso fazer uma FFT em uma imagem para reduzir o ruído, mas o problema é que não preciso da imagem completa, mas apenas um círculo no meio. As fronteiras são uma plataforma fixa, portanto, não estou interessado no que mostra, mas tem um impacto no resultado da FFT.

Existe alguma maneira de cortar uma parte circular e usá-la na FFT? Observe que, se eu usar fundo preto, a borda entre o fundo e os dados da imagem terão um grande impacto.

SinisterMJ
fonte

Respostas:

7

Em vez de ter uma borda rígida entre os dados de imagem de interesse e o plano de fundo, você pode usar uma função de janela cônica bidimensional , como costuma ser feito na análise espectral. Você pode começar tentando uma janela gaussiana , que para um caso bidimensional seria algo como:

w[x,y]=e(xNx12)22(σxNx12)2e(yNy12)22(σyNy12)2

Nx e Ny são as dimensões da transformação desejada no x e y direções, respectivamente, e σx e σysão parâmetros que permitem controlar a forma da janela; para pequenasσ valores, a maior parte da energia na função da janela será concentrada em direção ao centro, com esse efeito diminuindo à medida que você aumenta σ.

Jason R
fonte
Uma janela mais plana não seria melhor, já que ele não quer distorcer as coisas no meio?
Jim Clay
Certo; o acima foi dado apenas como exemplo de uma janela. Existem muitas funções de janela por aí que podem ser usadas, embora geralmente sejam descritas apenas para o caso unidimensional.
Jason R
Ok obrigado. Eu já pensei em usar uma função de janela, mas não sabia se havia algo melhor / completamente diferente por perto.
precisa
3

Use uma função de janela plana de topo cônico com uma borda plana superior e de borda, como uma janela cosseno cônica ou janela Tukey (gire-a em torno de um eixo polar para torná-lo um modelo 2D circular) e zero-pad conforme necessário para qualquer ação rápida filtragem -convolution. A janela que vai a zero nas bordas reduzirá o efeito das descontinuidades da borda do círculo na FFT. Após a filtragem ou outro processamento, misture novamente o resultado usando a função inversa subtrativa da sua janela nos dados de imagem existentes.

hotpaw2
fonte
0

Uma solução simples poderia ser espalhar as condições de contorno de sua região não retangular de interesse para o retângulo ao redor dela.

Você pode fazer isso com o algoritmo vizinho mais próximo.

Danny Varod
fonte