Home > Net >  Fourier transform of 2D Gaussian kernel is not matching up with its counterpart in the spatial domai
Fourier transform of 2D Gaussian kernel is not matching up with its counterpart in the spatial domai

Time:11-23

We know the Fourier transform of a Gaussian filter is again Gaussian in the frequency domain, I have written the following method to build a Gaussian kernel:

def get_gaussian(size, sigma):
  g_kernel = np.zeros((size,size))
  x_center = size // 2
  y_center = size // 2
  for i in range(size):
    for j in range(size):
      g_kernel[i,j] = np.exp(-((i - x_center)**2   (j - y_center)**2) / (2*sigma**2))
  return 1/(2*np.pi * sigma**2)* g_kernel

plt.figure(figsize=(8, 10))
sigma = 20
g_spatial = get_gaussian(img2.shape[0],sigma)
plt.imshow(g_spatial)

plt.figure(figsize=(8, 10))
g_frequnecy = fft.fftshift(fft.fft2(g_spatial))
plt.imshow(np.abs(g_frequnecy))

plt.figure(figsize=(8, 10))
g_spatial = get_gaussian(img2.shape[0],sigma / (np.sqrt(2) * np.pi))
plt.imshow(g_spatial)

The second and third Gaussians don't seem to match up at all. I will attach the pictures of all three Gaussian kernels below. I'm pretty sure I have calculated the variance of each Gaussian kernel such that they would match based on the 2D Fourier transform of a Gaussian kernel. Where have I made a mistake?

enter image description here

enter image description here

enter image description here

CodePudding user response:

In the frequency domain, the Gaussian has a sigma of size / (2 * pi * sigma), with size the size of the image, and sigma the spatial-domain sigma. Yes, for a non-square image, an isotropic Gaussian in the spatial domain is not isotropic in the frequency domain.

Your computation sigma / (np.sqrt(2) * np.pi) is wrong. One quick way to tell it's not correct is that a larger sigma in the spatial domain also produces a larger sigma in the frequency domain using your computation. But we know that scaling up (==making larger) in the spatial domain scales the frequency domain down, as larger wavelengths have smaller frequencies.

  • Related