Python 中的 MATLAB freqz2 等价物

MATLAB freqz2 equivalent in Python

我正在尝试找到一个 Python 库,它与 MATLAB 的 freqz2 等效用于图像处理,因为 scipy.signal.freqz 似乎只适用于一维数组。

找到了一个很棒的库,用于绘制 2-D FFT 的 3D 表面,称为 plotly。我在这里留下了我用来在 Python:

中模拟 freqz2 相同行为的代码行
import scipy.fft as fft
import plotly.graph_objects as go

N = 128
h = fspecial('unsharp', alpha=0.2)
H = fft.fftshift(fft.fft2(h, [N, N]))
f = fft.fftshift(fft.fftfreq(N))
fig = go.Figure(data=[go.Surface(x=f, y=f, z=np.abs(H))])
fig.show()

3D 图形是交互式的,python 中的 fspecial 函数是我自己实现的,复制了 MATLAB 的功能(如果被问到,我也可以 post)。

相当于 MATLAB 的:

h = fspecial('unsharp');
freqz2(h);