Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

2D FFT Convolution

  1. Feb 16, 2010 #1
    I'm trying to do FFT convolution via the FFTW3 library for image processing purposes. Basically I have a kernel and I am convolving it with an image.

    A problem I encountered has to do with the dimensions of the image. When the width is not equal to the height, the pixel values I get, seem to be at the wrong x,y coords. With the width and height being equal I get the correct results.

    My questions are:
    Is it possible to perform 2D FFT convolution with width not equal to height, without having to pad the image?
    Could it have to do with the way I'm padding the kernel to match the image size?

    I'm using an NVIDIA paper, available http://developer.download.nvidia.com/compute/cuda/2_2/sdk/website/projects/convolutionFFT2D/doc/convolutionFFT2D.pdf" [Broken] on the subject as a guide.
     
    Last edited by a moderator: May 4, 2017
  2. jcsd
  3. Feb 18, 2010 #2
    Yes, it is...take a look http://www.cs.cf.ac.uk/Dave/Multimedia/node228.html" [Broken] to see how the 2D discrete Fourier transform is defined on a rectangular grid. Padding with zeros gives you a result which is probably different than what you want in your application.
     
    Last edited by a moderator: May 4, 2017
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook