【问题标题】:MATLAB freqz2 equivalent in PythonPython中的MATLAB freqz2等价物
【发布时间】:2021-11-02 15:15:24
【问题描述】:

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

【问题讨论】:

    标签: python matlab image-processing scipy


    【解决方案1】:

    找到了一个很棒的库,用于绘制 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 的功能(如果有要求,我也可以发布它)。

    相当于 MATLAB 的:

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

    【讨论】:

      猜你喜欢
      • 2016-09-18
      • 2018-05-29
      • 2020-02-13
      • 2015-07-17
      • 1970-01-01
      • 1970-01-01
      • 2021-03-13
      • 2019-11-30
      • 2017-11-17
      相关资源
      最近更新 更多