【问题标题】:B&W Dots in Frequency domain figure of an image图像频域图中的黑白点
【发布时间】:2015-09-06 11:51:08
【问题描述】:
我有这行简单的代码,它读取图像并使用matlab 的fft2 函数对图像进行傅立叶变换,然后通过fftshift 将较低的频率带到图的中心。
问题是在频域图像的图中:
1) 哪个黑点/白点代表高频?
2)每个黑点/白点的密度是否显示了每个频率系数的强度?
clc;
clear all;
format short;
format compact;
im=imread('cameraman.tif');
figure,imshow(im);
F=fftshift(fft2(im));
figure,imshow(uint8(abs(F)));
【问题讨论】:
标签:
image
matlab
image-processing
fft
frequency-domain
【解决方案1】:
一方面,您没有正确地可视化频谱的幅度。您天真地将结果转换为uint8。因此,任何大于 255 的值都会被截断为 255。人们通常做的一件事是取频谱的对数并在取对数之前加 1,以确保没有未定义的错误。
因此,这样做:
figure; imshow(log(1 + abs(F)), []);
你会得到这张照片:
这是频谱的更好表示。 DC 系数的强度最高,位于图像的中间。高频系数向频谱的外边缘移动。您会看到不同方向的线条。这些实际上为您提供了图像中最突出边缘的方向,从垂直线开始,告诉您摄影师图像中有很多垂直线,这是有道理的。
此外,您是正确的,因为系数的强度对应于图像中点的强度。这张图片中的每个点都告诉您在这一点上体验到的水平和垂直空间频率的强度。