2016-12-14 3 views
1

У меня есть изображение сетки отверстий. Обработка его с помощью numpy.fft.fft2 дает хорошее изображение, где я отчетливо вижу периодичность, базовые векторы и т. Д.Масштабирующий коэффициент n-dim fft в numpy

Но как я могу извлечь интервал решетки?

Точки решетки в реальном пространстве имеют интервал около 96px, поэтому интервал в k-пространстве будет 2*Pi/96px = 0.065 1/px.

Естественно, numpy не может вернуть массив изображений с интервалом между пикселями, поэтому он как-то масштабируется - расстояние в k-пространстве составляет около 70px.

Но как делается масштабирование и каков точный коэффициент масштабирования?

ответ

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