1

グレースケール画像に各空間周波数がどれだけ存在するかをプロットしたいと思います。

試してみるように言われましnp.fft.fft2たが、どうやらこれは私が必要としているものではないようです (この質問によると)。その後、調べるように言われましたnp.fft.fftfreq-そして、それは私が必要とするもののように聞こえますが、入力として整数のみを受け取るので、

np.fft.fftfreq(np.fft.fft2(image)) 

動作しません。次のようなこともありません。

np.fft.fftfreq(np.abs(np.fft.fft2(image)))

他にどのようにこれを行うことができますか?フーリエ変換にとっては、かなり些細な作業のように思えます。それは実際にはフーリエ変換タスクです。np.fft.fft2周波数分析の向きに依存しないようにするフラグがない理由がわかりません。

4

1 に答える 1

3

リンクされた質問のコメントと、最後のコメントに投稿されたドキュメントを再読する必要があるかもしれません。画像の形状をに渡すことになっていますnp.fft.fftfreq

freqx = np.fft.fftfreq(image.shape[0])

x 方向と

freqy = np.fft.fftfreq(image.shape[1])

y 方向。

結果は、 によって返される周波数ビンの中心になりますfft2。次に例を示します。

image_fft = np.fft.fft2(image)

その場合、振幅に対応する周波数image_fft[i,j]freqx[i]x 方向とfreqy[i]y 方向にあります。

ただし、最後の文は、まったく別のことをしたいということを示しています。2 次元入力のフーリエ変換も、一般的な定義では 2 次元です。どのような逸脱した定義を使用したいですか?

于 2014-02-10T23:51:25.030 に答える