n-dim中n-dim fft的缩放因子

时间:2016-12-14 09:36:05

标签: python numpy fft mathematical-lattices

我有一个洞的网格图像。使用numpy.fft.fft2处理它会产生一个很好的图像,我可以清楚地看到周期性,基本向量等。

但是如何提取晶格间距?

实空间中的格点间距约为96px,因此k空间中的间距为2*Pi / 96px = 0.065 1/px

当然,numpy不能返回具有子像素间距的图像数组,因此它以某种方式缩放 - k空间中的间距约为70px

但是如何完成缩放以及确切的缩放因子是什么?

1 个答案:

答案 0 :(得分:0)

numpy.fft.fft2的输出频率标度的单位是cycle/full-length/pixel,假设输入是周期性的,其周期对应于完整输入长度。

因此,如果您的fft2输出大小为6720 x 6720像素且在70 th 像素处出现尖峰,则可能会出现周期性成分。空间域,周期为:

 1 / (70 pixels * 1 cycle / 6720 pixels / pixel) = 96 pixels/cycle.

相应地,如果您的输入图像的大小为6720 x 6720像素且每96个像素重复一次,那么您将在频域中获得峰值:

(1 / (96 pixels/cycle))  /  (1 cycle / 6720 pixels / pixels) = 70 pixels.

虽然这是单位准确的,但也许更简单的方法是:

spatial-domain-period-in-pixels
    = image-size-in-pixels / frequency-domain-frequency-in-pixels
frequency-domain-frequency-in-pixels =
    = image-size-in-pixels / spatial-domain-period-in-pixels