【问题标题】:Plotting spectrogram but returned weird results绘制频谱图但返回奇怪的结果
【发布时间】:2019-02-09 03:03:27
【问题描述】:

我已经使用matplotlib.pyplot.specgram 函数将一些音频转换为频谱图图像。

对图像进行一些操作后,现在我想将其保存为图像文件。

我的简单想法是,由于数据已经是 numpy 数组,我可以将它们绘制出来。

代码是:

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
import imageio

im = imageio.imread(path/0.png')
plt.plot(im)
plt.show()

但是,它会返回非常奇怪的图像,如图所示。

  1. 图像看起来很奇怪,显然无法识别为频谱图

  2. 原图是灰度图(256, 128),怎么返回的图颜色不一样?

  3. 我现在该怎么办?是不是参数设置错误导致了结果?

【问题讨论】:

  • 您将图像的每一列绘制为一条线。这就是plot 应该做的。您可能想使用imshow 来显示图像。或者也许imsave 来保存它?但不确定预期的结果是什么?

标签: python matplotlib signal-processing


【解决方案1】:

类似于https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.spectrogram.html 中的演示,您应该使用 plt.pcolormesh 函数而不是 plt.plot。目前,您正在分别绘制频谱图的每条线。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-08
    • 2012-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多