MATLAB图像处理:比例变换对傅里叶变换频谱的影响
MATLAB图像处理:比例变换对傅里叶变换频谱的影响
本示例使用 MATLAB 代码构建一个简单的黑白图像,包含一个白色方块,并对其进行放大和缩小操作。通过观察比例变换前后图像的傅里叶变换频谱图,我们可以分析放大和缩小操作对图像频谱信息的影响。
代码:
% 构造黑白图像
image_size = 256;
image = zeros(image_size);
image(image_size/4:image_size*3/4, image_size/4:image_size*3/4) = 1;
% 显示原图像
figure;
subplot(2, 2, 1);
imshow(image);
title('原图像');
% 计算原图像的傅里叶变换频谱图
spectrum = fftshift(fft2(image));
spectrum = abs(spectrum);
subplot(2, 2, 2);
imshow(log(spectrum+1), []);
title('原图像的傅里叶变换频谱图');
% 进行放大操作
zoomed_in = imresize(image, 2, 'nearest');
% 显示放大后的图像
subplot(2, 2, 3);
imshow(zoomed_in);
title('放大后的图像');
% 计算放大后图像的傅里叶变换频谱图
spectrum_zoomed_in = fftshift(fft2(zoomed_in));
spectrum_zoomed_in = abs(spectrum_zoomed_in);
subplot(2, 2, 4);
imshow(log(spectrum_zoomed_in+1), []);
title('放大后的图像的傅里叶变换频谱图');
% 进行缩小操作
zoomed_out = imresize(image, 0.5, 'nearest');
% 显示缩小后的图像
figure;
subplot(2, 2, 1);
imshow(zoomed_out);
title('缩小后的图像');
% 计算缩小后图像的傅里叶变换频谱图
spectrum_zoomed_out = fftshift(fft2(zoomed_out));
spectrum_zoomed_out = abs(spectrum_zoomed_out);
subplot(2, 2, 2);
imshow(log(spectrum_zoomed_out+1), []);
title('缩小后的图像的傅里叶变换频谱图');
分析:
原图像的傅里叶变换频谱图显示了原图像中白色方块的频谱信息。
- 放大操作会使原图像中的白色方块在放大后的图像中变得更大,因此放大后图像的傅里叶变换频谱图中对应于方块的频谱信息也会变得更大。
- 缩小操作会使原图像中的白色方块在缩小后的图像中变得更小,因此缩小后图像的傅里叶变换频谱图中对应于方块的频谱信息也会变得更小。
通过比较不同操作的傅里叶变换频谱图,可以观察到放大和缩小操作对频谱信息的影响。
总结:
比例变换会影响图像的傅里叶变换频谱。放大操作会增强图像中对应于细节特征的频率成分,而缩小操作会削弱这些频率成分。
本示例仅展示了简单的图像处理操作,您可以尝试使用更复杂的图像和不同的比例变换操作来进一步探索比例变换对傅里叶变换频谱的影响。
原文地址: https://www.cveoy.top/t/topic/phjH 著作权归作者所有。请勿转载和采集!