首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图像的功率谱

图像的功率谱
EN

Stack Overflow用户
提问于 2013-12-10 06:24:04
回答 2查看 17.5K关注 0票数 6

我已经开始(一个小项目)在频域中计算图像的功率谱。

因此,到目前为止,我所拥有的是:

代码语言:javascript
复制
%// close all; clear all; %// not generally appreciated
img   = imread('ajw_pic.jpg','jpg'); % it is a color image
img = rgb2gray(img); %// change to gray
psd = 10*log10(abs(fftshift(fft2(img))).^2 );
figure(2); clf
mesh(psd)

到目前为止,它看起来很好;我得到了类似于我在各种学术论文中看到的光谱的网格图。

然而,我要找的是功率谱与频率的曲线图,我不完全确定如何获得这个频率矢量。例如,我可以这样做:

代码语言:javascript
复制
N=400;        %// the image is 400 x 400
f=-N/2:N/2-1; %// possible frequencies?

但我不相信这是完全正确的,因为这会导致负频率。

如果有人能给我指出正确的方向,绘制对数频率与功率谱之间的关系,我将非常感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-10 07:51:45

fft将信号“分割”成频率“槽”,其中您可以观察到的最大频率是奈奎斯特频率或采样频率的一半。这意味着:

代码语言:javascript
复制
Y = fft(X,N); %  (1D case)

Y(1:N/2+1)中的FFT值对应的频率为:

代码语言:javascript
复制
f = [fs/2*linspace(0,1,N/2+1)]; % where fs is your sampling frequency

Y的另一半是镜像的,来自傅立叶变换的本质。如果你不想完全理解它,我会说,除了你可以在维基百科上找到的东西之外,没有必要为它而烦恼。但出于好奇心,你可以查看一个很好的直观的正负频率起源的插图:https://dsp.stackexchange.com/questions/431/what-is-the-physical-significance-of-negative-frequencies/449#449

2D图像情况下的一些关键区别:

使用

  1. 将0频率移到矩阵的中心,而不是像上面的1D示例那样将它们放在边缘。所以你实际上会得到f = fs/2 * linspace(-1,1,N) (同样,不要介意负的frequencies)
  2. The,下一个问题是获得采样频率。空间频率通常以mm^-1为单位测量,因此为了获得它,您实际上需要知道像素中心之间的物理距离(像素间距)。当然,你也可以考虑以像素^-1为单位的空间频率,在这种情况下,你就可以开始了。
票数 2
EN

Stack Overflow用户

发布于 2016-01-12 07:50:22

要绘制功率谱与图像频率的关系图,可以使用一个称为“径向平均”的过程。这将计算与图像中心有一定径向距离的像素的平均值。将其应用于功率谱密度矩阵,会产生功率与频率的关系曲线图。

有关更多信息和MATLAB示例代码:http://www.mathworks.com/matlabcentral/fileexchange/46468-radialavg-zip/content/radialavg.m

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20482137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档