Python n维fft的标度因子
我有一个网格孔的图像。用Python n维fft的标度因子,python,numpy,fft,mathematical-lattices,Python,Numpy,Fft,Mathematical Lattices,我有一个网格孔的图像。用numpy.fft.fft2处理它会得到一个很好的图像,我可以清楚地看到周期性、基向量等 但是如何提取晶格间距呢 实空间中的晶格点的间距约为96px,因此k空间中的间距为2*Pi/96px=0.065 1/px 自然,numpy无法返回具有亚像素间距的图像阵列,因此它在某种程度上是按比例缩放的——k空间中的间距约为70px 但是缩放是如何进行的,精确的缩放因子是什么?假设输入是周期性的,且周期对应于完整的输入长度,则输出频率缩放的单位为周期/全长/像素 因此,如果您有一个
numpy.fft.fft2
处理它会得到一个很好的图像,我可以清楚地看到周期性、基向量等
但是如何提取晶格间距呢
实空间中的晶格点的间距约为96px
,因此k空间中的间距为2*Pi/96px=0.065 1/px
自然,numpy无法返回具有亚像素间距的图像阵列,因此它在某种程度上是按比例缩放的——k空间中的间距约为70px
但是缩放是如何进行的,精确的缩放因子是什么?假设输入是周期性的,且周期对应于完整的输入长度,则输出频率缩放的单位为周期/全长/像素
因此,如果您有一个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
的输出频率标度单位为周期/全长/像素
,假设输入是周期性的,周期对应于完整输入长度
因此,如果您有一个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