用matlab写。建立输入图像,在6464的黑色图像矩阵的中心建立1616的白色矩形图像点阵,形成图像文件。对输入图像进行二维傅立叶变换,将原始图像及傅里叶变换图像都显示于屏幕上。,将傅里叶变换图像三维化,中心化。
时间: 2024-05-12 08:14:16 浏览: 221
以下是您可以尝试的MATLAB代码,实现您的要求:
```MATLAB
% 创建输入图像
input_img = zeros(64, 64); % 创建64x64的黑色图像矩阵
input_img(25:40, 25:40) = ones(16, 16); % 在中心创建16x16的白色矩形图像点阵
imshow(input_img); % 显示输入图像
% 进行二维傅立叶变换
fft_img = fft2(input_img); % 计算傅立叶变换
fft_img_shift = fftshift(fft_img); % 对傅立叶变换进行中心化
mag_fft_img = abs(fft_img_shift); % 计算傅立叶变换幅度谱
phase_fft_img = angle(fft_img_shift); % 计算傅立叶变换相位谱
% 显示原始图像及傅立叶变换图像
figure;
subplot(2, 2, 1); imshow(input_img); title('Input Image');
subplot(2, 2, 2); imshow(log(1 + mag_fft_img), []); title('Magnitude Spectrum');
subplot(2, 2, 3); imshow(phase_fft_img, []); title('Phase Spectrum');
% 将傅立叶变换图像三维化
fft_img_3d = cat(3, mag_fft_img, phase_fft_img, zeros(size(mag_fft_img)));
% 显示傅立叶变换图像三维化结果
figure;
imshow(fft_img_3d); title('3D Magnitude and Phase Spectrum');
```
这个代码会创建一个64x64的黑色图像矩阵,并在中心创建一个16x16的白色矩形图像点阵。然后会对输入图像进行二维傅立叶变换,并将原始图像及傅立叶变换图像都显示于屏幕上。最后,会将傅立叶变换图像三维化,中心化,并将结果显示在屏幕上。
阅读全文