我正在做一个项目,我需要在 MATLAB 中对照片进行 FFT 和 IFFT。光学原理中,来自透镜的强度分布等于光最初通过的光圈的傅里叶变换。我在寻找理想来源的 FFT 和 IFFT 时遇到问题。
圆形孔径应具有称为艾里斑的强度模式,这应由圆的傅立叶变换产生。这是我在代码中使用的 Airy 磁盘的照片:

对艾里斑进行傅里叶逆变换应该会得到一个圆形光圈的图像,但是当我转换为 uint8 时,我所看到的只是黑色。如果我将其保留为 double 类型,那么我会在角落看到类似艾里斑的东西。这是我正在使用的代码:
pic=imread('airy.jpg');
pic=rgb2gray(pic); %Convert to grayscale
imshow(pic)
title('Initial');
pic=double(pic); %Convert to double before transforms
pic=ifft2(pic); %Take IFFT of Airy disk
pic=real(pic); %Take real part
figure()
pic=uint8(pic); %If commented out, black screen has Airy disks in corners
imshow(pic);
有没有人知道为什么艾里斑的IFFT不返回一个圆圈?谢谢

