1

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

但是如何提取晶格间距?

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

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

但是缩放是如何完成的,确切的缩放因子是多少?

4

1 回答 1

0

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

因此,如果您有一个像素fft2大小的输出6720 x 6720并且在第 70像素处有一个尖峰,您可能会期望空间域中的周期性分量具有以下周期:

 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
于 2016-12-14T15:42:38.170 回答