MATLAB图像比例变换与傅里叶变换频谱分析
使用MATLAB分析图像比例变换对傅里叶变换频谱的影响
本文将使用MATLAB代码构造一副黑白图像,并在其中间区域生成一个白色方块。随后,我们将对该图像进行放大和缩小操作,并观察原图像和变换后图像的傅里叶变换频谱图,分析比例变换对图像频谱的影响。
代码实现:
% 构造一副黑白图像
image_size = 256; % 图像大小
image = zeros(image_size);
image_center = round(image_size/2); % 图像中心坐标
% 在中间区域产生一个白色方块
box_size = round(image_size/4); % 方块大小
image((image_center-box_size/2):(image_center+box_size/2-1), (image_center-box_size/2):(image_center+box_size/2-1)) = 1;
% 进行放大和缩小的比例变换
scale_factor = 2; % 放大因子
scaled_image = imresize(image, scale_factor); % 放大
% scale_factor = 0.5; % 缩小因子
% scaled_image = imresize(image, scale_factor); % 缩小
% 绘制原图像的傅里叶变换频谱图
fft_image = fftshift(fft2(image));
fft_image_spectrum = abs(fft_image);
figure;
subplot(2,2,1);
imshow(image);
title('原图像');
subplot(2,2,2);
imagesc(log(fft_image_spectrum+1));
colormap jet;
colorbar;
title('原图像的傅里叶变换频谱图');
% 绘制变换后图像的傅里叶变换频谱图
fft_scaled_image = fftshift(fft2(scaled_image));
fft_scaled_image_spectrum = abs(fft_scaled_image);
subplot(2,2,3);
imshow(scaled_image);
title('变换后图像');
subplot(2,2,4);
imagesc(log(fft_scaled_image_spectrum+1));
colormap jet;
colorbar;
title('变换后图像的傅里叶变换频谱图');
分析:
通过运行以上代码,我们可以观察到以下现象:
-
原图像的傅里叶变换频谱图: 白色方块的频谱峰值较高,其它区域的频谱较低。这是因为方块在空域中对应着一个宽频谱的信号,在频域中对应着一个窄频谱的峰值。
-
放大图像后的傅里叶变换频谱图: 方块的频谱峰值变得更高,同时方块周围的频谱也有所增加。这是因为放大操作会增加图像中的高频成分,导致频谱图中的能量分布更加集中。
-
缩小图像后的傅里叶变换频谱图: 方块的频谱峰值变得更低,同时方块周围的频谱减少。这是因为缩小操作会减少图像中的高频成分,导致频谱图中的能量分布更加分散。
总结:
通过对比原图像和变换后图像的傅里叶变换频谱图,我们可以观察到图像在频域中的能量分布的变化,进而分析不同比例变换对图像频谱的影响。放大操作会增加图像的高频成分,导致频谱图能量集中;缩小操作会减少图像的高频成分,导致频谱图能量分散。
原文地址: https://www.cveoy.top/t/topic/phjr 著作权归作者所有。请勿转载和采集!