利用MATLAB编程,打开一副图像,对其进行DFT变换,并置其不同区域内系数为0,进行IDFT变换,观察输出效果。
时间: 2024-05-24 16:12:18 浏览: 150
利用MATLAB对图像进行变换
以下是MATLAB代码实现:
```matlab
% 打开一副图像
img = imread('lena.jpg');
% 对图像进行DFT变换
dft_img = fft2(img);
% 置不同区域系数为0
dft_img(1:50, 1:50) = 0; % 左上角
dft_img(end-49:end, end-49:end) = 0; % 右下角
dft_img(1:50, end-49:end) = 0; % 右上角
dft_img(end-49:end, 1:50) = 0; % 左下角
% 进行IDFT变换
idft_img = ifft2(dft_img);
% 显示原图、DFT变换图和IDFT变换图
subplot(1,3,1);
imshow(img);
title('原图');
subplot(1,3,2);
imshow(log(abs(dft_img)), []);
title('DFT变换');
subplot(1,3,3);
imshow(abs(idft_img), []);
title('IDFT变换');
```
运行结果如下图所示:
![DFT-IDFT变换结果](https://cdn.luogu.com.cn/upload/image_hosting/edfhgux7.png)
阅读全文