Python中的MATLAB freqz2等效程序

2024-06-27 19:18:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图找到一个Python库,该库在图像处理方面与MATLAB的freqz2相当,因为scipy.signal.freqz似乎只适用于一维数组


1条回答
网友
1楼 · 发布于 2024-06-27 19:18:12

发现了一个惊人的库,用于绘制二维FFT的三维曲面,称为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中的F特殊函数是我自己复制MATLAB的功能实现的(如果有人要求,我也可以发布)。 enter image description here

这相当于MATLAB的:

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

enter image description here

相关问题 更多 >