MATLAB图像处理:傅里叶变换与比例变换的影响
首先,我们可以使用MATLAB来构造一幅黑白图像,并在中间区域产生一个白色方块。以下是相应的MATLAB代码:
% 构造黑白图像
image_size = 256; % 图像大小
image = zeros(image_size); % 初始化图像为全黑
% 在中间区域产生一个白色方块
box_size = 64; % 方块大小
start_pos = (image_size - box_size) / 2; % 方块起始位置
end_pos = start_pos + box_size - 1; % 方块结束位置
image(start_pos:end_pos, start_pos:end_pos) = 1; % 将方块区域设置为白色
% 显示原图像
figure;
imshow(image);
title('原图像');
接下来,我们可以观察原图像的傅里叶变换频谱图。以下是相应的MATLAB代码:
% 计算原图像的傅里叶变换
fft_image = fftshift(fft2(image));
% 显示原图像的傅里叶变换频谱图
figure;
imshow(log(abs(fft_image) + 1), []);
title('原图像的傅里叶变换频谱图');
现在,我们可以对中间产生的白色方块进行放大和缩小,并观察变换后图像的傅里叶变换频谱图的变化。以下是相应的MATLAB代码:
% 放大白色方块
enlarged_image = imresize(image, 2, 'nearest');
% 缩小白色方块
shrunken_image = imresize(image, 0.5, 'nearest');
% 显示放大后的图像
figure;
imshow(enlarged_image);
title('放大后的图像');
% 计算放大后图像的傅里叶变换
fft_enlarged_image = fftshift(fft2(enlarged_image));
% 显示放大后图像的傅里叶变换频谱图
figure;
imshow(log(abs(fft_enlarged_image) + 1), []);
title('放大后图像的傅里叶变换频谱图');
% 显示缩小后的图像
figure;
imshow(shrunken_image);
title('缩小后的图像');
% 计算缩小后图像的傅里叶变换
fft_shrunken_image = fftshift(fft2(shrunken_image));
% 显示缩小后图像的傅里叶变换频谱图
figure;
imshow(log(abs(fft_shrunken_image) + 1), []);
title('缩小后图像的傅里叶变换频谱图');
通过运行上述代码,我们可以观察原图像的傅里叶变换频谱图以及放大和缩小后图像的傅里叶变换频谱图。通过比较分析,我们可以得出以下结论:
- 原图像的傅里叶变换频谱图中,白色方块对应的频率分量在中心区域附近。
- 放大后图像的傅里叶变换频谱图中,白色方块对应的频率分量在中心区域附近更加明显,并且周围出现了更多的高频率分量。
- 缩小后图像的傅里叶变换频谱图中,白色方块对应的频率分量在中心区域附近变得更加模糊,并且周围的高频率分量减少。
这些变化可以归因于放大和缩小操作对图像频谱的影响。放大操作会增加图像的高频细节,因此在傅里叶变换频谱图中会出现更多的高频率分量。相反,缩小操作会减少图像的高频细节,导致傅里叶变换频谱图中的高频率分量减少。
原文地址: https://www.cveoy.top/t/topic/pjEZ 著作权归作者所有。请勿转载和采集!