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?