B& W点在图像的频域图中

时间:2015-06-20 16:01:50

标签: image matlab image-processing fft frequency-domain

我有这个简单的代码行,它使用fft2 matlab函数读取图像并对图像进行傅里叶变换,然后将fftshift的低频率带到图的中心{{ 1}}。
问题是在频域图像中:

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)));

1 个答案:

答案 0 :(得分:2)

嗯,有一件事你没有正确地看到频谱的大小。您天真地将结果转换为uint8。因此,任何大于255的值都会被截断为255.人们通常做的一件事就是采用频谱的对数并在获取日志之前加1,以确保没有未定义的错误。

因此,请执行此操作:

figure; imshow(log(1 + abs(F)), []);

你得到这张照片:

这是一个更好的频谱表示。 DC系数具有最高强度,并且位于图像的中间。高频系数向光谱的外边缘移动。你看到有各种方向的线条。这些实际上为您提供了图像中最突出边缘的方向,从垂直线开始,告诉您摄影师图像中有很多垂直线,这是有道理的。

另外,你的正确性是因为系数的强度对应于图像中点的强度。此图像中的每个点都会告诉您此时经历的水平和垂直空间频率的强度。