获取灰度图像的空间频率细分(2d数组)

时间:2014-02-10 23:21:27

标签: python numpy fft frequency-distribution

我想得到一幅灰度图像中每个空间频率的图表。

我被告知尝试np.fft.fft2但显然这不是我需要的(根据this question)。然后我被告知要调查np.fft.fftfreq - 虽然听起来就像我需要的那样,它只需要一个整数作为输入,所以

np.fft.fftfreq(np.fft.fft2(image)) 

不起作用。也不是:

np.fft.fftfreq(np.abs(np.fft.fft2(image)))

我怎么能尝试这样做?对于傅立叶变换来说,这似乎是一项相当微不足道的任务。它实际上是傅立叶变换的 任务。我不明白为什么np.fft.fft2没有标志使频率分析与方向无关。

1 个答案:

答案 0 :(得分:3)

也许您应该重读相关问题中的评论,以及上次评论中发布的文档。您应该将图像形状传递给np.fft.fftfreq

freqx = np.fft.fftfreq(image.shape[0])

用于x方向和

freqy = np.fft.fftfreq(image.shape[1])

表示y方向。

结果将是fft2返回的频率分类的中心,例如:

image_fft = np.fft.fft2(image)

然后,幅度image_fft[i,j]对应的频率在x方向为freqx[i],在y方向为freqy[i]

你的最后一句话表明你想要做一些完全不同的事情。二维输入的傅立叶变换通常也是二维的。您想要使用什么偏离定义?