numpy中n-dim fft的缩放系数



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

但是如何提取晶格间距?

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

自然,numpy无法返回带有子像素间距的图像数组,因此它以某种方式缩放 - k空间中的间距大约是70px

但是如何完成缩放率,确切的缩放系数是什么?

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个像素都重复每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

相关内容

  • 没有找到相关文章