Matlab 图像傅里叶变换

本文介绍了如何使用Matlab进行二维傅里叶变换。通过创建一个512x512的矩阵并设置特定区域为白色,然后应用fft2()函数进行傅里叶变换,fftshift()将变换后的频谱移动到中心,再进行对数变换以增强视觉效果。代码实现了从原始图像到傅里叶频谱、频谱中心化以及对数变换的完整过程,并展示了每个步骤的图像结果。
摘要由CSDN通过智能技术生成

Matlab 实现傅里叶变换(二维)

主要函数:

fft2(); fftshift();

实现代码:

img = zeros(512,512);             %构建一个512*5120矩阵 (黑色)

img(224:278,224:296) = 1;        %224278行和224296列设为1(白色)

img_1 = fft2(img);                                                %求傅里叶变换

img_2 = fftshift(img_1);                                           %把原点移至矩阵中心

img_3 = log(1+abs(img_2));                                        %对数变换

subplot(2,2,1); imshow(img); title('原图像');

subplot(2,2,2); imshow(abs(img_1),[ ]); title('傅里叶频谱');

subplot(2,2,3); imshow(abs(img_2),[ ]); title('频谱移至中心');

subplot(2,2,4); imshow(img_3,[ ]); title('对数变换后');

运行结果:

在这里插入图片描述

MATLAB进行图像傅里叶变换可以使用fft2函数,具体步骤如下: 1. 读入图像并转换为灰度图像。 2. 对灰度图像进行填充,使得其尺寸为2的幂次方,可以使用padarray函数。 3. 对填充后的图像进行傅里叶变换,使用fft2函数。 4. 对傅里叶变换的结果进行频域平移,使得低频部分在中心。 5. 对平移后的频域图像进行幅度和相位的计算。 6. 可以对幅度和相位进行可视化展示,也可以对幅度进行滤波操作。 7. 对滤波后的频域图像进行傅里叶变换,使用ifft2函数。 8. 对逆傅里叶变换的结果进行裁剪,得到原始图像傅里叶变换结果。 下面是一个简单的MATLAB代码示例: ```matlab % 读入图像并转换为灰度图像 img = imread('lena.jpg'); img_gray = rgb2gray(img); % 对灰度图像进行填充 padded_img = padarray(img_gray, [128 128], 'both'); % 进行傅里叶变换 fft_img = fft2(padded_img); % 频域平移 fft_img_shifted = fftshift(fft_img); % 计算幅度和相位 mag_spec = abs(fft_img_shifted); phase_spec = angle(fft_img_shifted); % 可视化展示幅度和相位 subplot(1,2,1), imshow(log(1+mag_spec),[]); title('Magnitude Spectrum'); subplot(1,2,2), imshow(phase_spec,[]); title('Phase Spectrum'); % 对幅度进行滤波操作 filtered_mag_spec = mag_spec; filtered_mag_spec(200:300,200:300) = 0; % 进行傅里叶变换 ifft_img = ifft2(ifftshift(filtered_mag_spec)); % 对逆傅里叶变换的结果进行裁剪 cropped_ifft_img = ifft_img(129:384,129:384); % 可视化展示原始图像傅里叶变换结果 subplot(1,2,1), imshow(img_gray); title('Original Image'); subplot(1,2,2), imshow(abs(cropped_ifft_img),[]); title('FFT Result'); ``` 运行以上代码后,可以得到原始图像和其傅里叶变换结果的可视化展示。可以根据自己的需要进行进一步的操作和优化。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LPY。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值