Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Removing padding after fft

Hello, in the example in OpenCV Discrete Fourier Transform, here https://docs.opencv.org/master/d8/d01/tutorial_discrete_fourier_transform.html It is mentioned that after optimizing the array (padding with zeros) to remove them you can just do the following:

magI_rows, magI_cols = magI.shape # crop the spectrum, if it has an odd number of rows or columns magI = magI[0:(magI_rows & -2), 0:(magI_cols & -2)]

But apart from cropping the array from odd x,y to even, I don't see how this get rid of the buffed array. Thanks for anyone shedding light on this.

Removing padding after fft

Hello, in the example in OpenCV Discrete Fourier Transform, here https://docs.opencv.org/master/d8/d01/tutorial_discrete_fourier_transform.html It is mentioned that after optimizing the array (padding with zeros) to remove them the padded zeros you can just do the following:

magI_rows, magI_cols = magI.shape
 # crop the spectrum, if it has an odd number of rows or columns
 magI = magI[0:(magI_rows & -2), 0:(magI_cols & -2)]

-2)] cx = int(magI_rows/2) cy = int(magI_cols/2) q0 = magI[0:cx, 0:cy] # Top-Left - Create a ROI per quadrant q1 = magI[cx:cx+cx, 0:cy] # Top-Right q2 = magI[0:cx, cy:cy+cy] # Bottom-Left q3 = magI[cx:cx+cx, cy:cy+cy] # Bottom-Right tmp = np.copy(q0) # swap quadrants (Top-Left with Bottom-Right) magI[0:cx, 0:cy] = q3 magI[cx:cx + cx, cy:cy + cy] = tmp tmp = np.copy(q1) # swap quadrant (Top-Right with Bottom-Left) magI[cx:cx + cx, 0:cy] = q2 magI[0:cx, cy:cy + cy] = tmp

But apart from cropping the array from odd x,y this just changes the quadrants. I think the correct approach is to even, I don't see how this get rid of the buffed array. Thanks for anyone shedding light on this.remove the padded zeros after inverse-fft. In any case perhaps that part in the instructions needs to be clarified!? Thoughts?