使用MATLAB分析图像比例变换对傅里叶变换频谱的影响

本文将通过MATLAB代码生成一幅黑白图像,并在其上生成一个白色方块。然后,对该图像进行放大和缩小操作,并观察原图像以及变换后图像的傅里叶变换频谱图,分析比例变换对图像频谱的影响。

代码实现

% 生成黑白图像
image_size = 512;
image = zeros(image_size, image_size);
center = image_size/2;
square_size = 100;
image(center-square_size/2:center+square_size/2, center-square_size/2:center+square_size/2) = 1;

% 显示原图像
figure;
imshow(image);
title('原图像');

% 进行放大
scale_factor = 2;
resized_image = imresize(image, scale_factor);
resized_image_size = size(resized_image);

% 显示放大后的图像
figure;
imshow(resized_image);
title('放大后的图像');

% 计算原图像的傅里叶变换
fft_image = fftshift(fft2(image));

% 绘制原图像的傅里叶变换频谱图
figure;
imshow(log(abs(fft_image) + 1), []);
title('原图像的傅里叶变换频谱图');

% 计算放大后图像的傅里叶变换
fft_resized_image = fftshift(fft2(resized_image));

% 绘制放大后图像的傅里叶变换频谱图
figure;
imshow(log(abs(fft_resized_image) + 1), []);
title('放大后的图像的傅里叶变换频谱图');

% 进行缩小
scale_factor = 0.5;
resized_image = imresize(image, scale_factor);
resized_image_size = size(resized_image);

% 显示缩小后的图像
figure;
imshow(resized_image);
title('缩小后的图像');

% 计算缩小后图像的傅里叶变换
fft_resized_image = fftshift(fft2(resized_image));

% 绘制缩小后图像的傅里叶变换频谱图
figure;
imshow(log(abs(fft_resized_image) + 1), []);
title('缩小后的图像的傅里叶变换频谱图');

分析结果

运行上述代码后,可以观察到以下现象:

  1. 原图像的傅里叶变换频谱图在中心区域有一个明显的峰值,代表了白色方块的低频分量。
  2. 放大后的图像的傅里叶变换频谱图在中心区域的峰值更加明显,说明放大会增强低频分量。
  3. 缩小后的图像的傅里叶变换频谱图在中心区域的峰值减弱了,说明缩小会减弱低频分量。

总结

傅里叶变换将空间域中的图像转换为频域中的频谱图,频域中的低频分量对应图像中的大尺寸结构,而高频分量对应图像中的细节。

  • 放大会增强低频分量,使得图像中的大尺寸结构更明显;
  • 缩小会减弱低频分量,使得图像中的大尺寸结构变得模糊。

因此,通过观察傅里叶变换频谱图的变化,我们可以了解到比例变换对图像内容的影响。


原文地址: https://www.cveoy.top/t/topic/phjy 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录