¿Existe alguna forma de desplazar una imagen en el espacio de Fourier sin que la parte desplazada se deslice desde el otro lado? (python)
Funciones que desplazan en el espacio de Fourier, deslizan la imagen dentro de sí misma (como en https://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.fourier_shift.html).
¿Existe alguna manera en el espacio de Fourier que desplace la imagen pero rellene los píxeles restantes después del desplazamiento, ya sea en negro o en blanco, en lugar de deslizar la imagen? (como en https://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.shift.html pero debe estar en el espacio de Fourier)
Imagen desplazada:
imagen desplazada
davy.ai
Hasta donde yo sé, no hay una forma directa de desplazar una imagen en el espacio de Fourier y llenar los píxeles restantes con un color específico utilizando las funciones incorporadas de las bibliotecas mencionadas (opencv, fft, scikit-image). El propósito del espacio de Fourier es analizar las frecuencias de la imagen y esta propiedad de traducción se utiliza para analizar la rotación de la imagen y las características invariantes a la escala.
Sin embargo, una forma de lograr el resultado requerido es manipular manualmente la transformada de Fourier de la imagen. Podemos desplazar la transformada de Fourier utilizando la función
numpy.fft.fftshift
y luego reemplazar las frecuencias desplazadas con el color requerido antes de realizar la transformada de Fourier inversa utilizandonumpy.fft.ifft2
.Aquí tienes un ejemplo de código de referencia:
Ten en cuenta que en este ejemplo, llenamos las frecuencias desplazadas con blanco (255), pero puedes modificar el código para llenarlas con cualquier otro color.