Ich habe also einige Hausaufgaben zur Beugung in Python mit Numpy gemacht. Meine Ergebnisse wollten einfach nicht so ausfallen, wie sie hätten ausfallen sollen, und ich war verwirrt.
Der Code, den ich zur Erzeugung der FFTs verwendet habe, lautet wie folgt:
Python:
aperaturearray = np.array(im) # Turn image into numpy array
Ta = np.fft.fftshift(np.fft.fft2(aperaturearray))
### I did some calculations here ###
ftfm = Image.fromarray(np.uint8(Utfm))
ftfm.save(("Path"))
Matlab:
rect = imread('PATH\pyRectangle.jpg');
rectfft = fft2(rect);
imwrite(rectfft, 'C:\Users\Dan\Documents\python\DiffPhotos\matlabRectfft','jpg')
pyrectmat = ifft2(pyfftrect);
imwrite(pyrectmat, 'Path','jpg')
Die Bilder sind hier -> http://imgur.com/a/3Cw81#EdFoA
Was ist hier eigentlich los? Warum sind die FFT-Bilder so unterschiedlich? Unterschiedliche Implementierungen? Warum funktioniert mein Hausaufgabencode nicht :(