【问题标题】:Store calculated filter banks into spectrogram image with Python使用 Python 将计算的滤波器组存储到频谱图图像中
【发布时间】:2018-10-16 10:16:28
【问题描述】:

我正在使用following code 来计算小波信号的频率或 MFCC 系数。当我在 2D numpy 数组中计算我的信号(随时间变化的频率)时,我试图将其本地存储到 .png 图像中。我正在尝试用两种不同的可能方式来做到这一点。首先,通过使用:

matplotlib.image.imsave("my_img.png", filter_banks)

这导致:

以及使用librosa工具的第二种方式:

import librosa.display
from matplotlib import cm
fig = plt.figure(figsize=(..., ...), dpi=1)
librosa.display.specshow(filter_banks.T, cmap=cm.jet)
plt.tight_layout()
plt.savefig("_plot_static_conv.png")
plt.show()

结果如下:

我的问题是图像上有一些不需要的白边。如何在第二种情况下也具有相同的尺寸并避免我猜是由 plt.figure 引起的图像上的白边?

编辑:我尝试使用following post 的答案,但它没有解决我的问题。

【问题讨论】:

    标签: python numpy signals figure


    【解决方案1】:

    可能作为一种解决方法,您的白边距为 4 像素, 你能保存你的第二张图片,在高度和宽度上再增加 8 个像素吗?

    然后使用 c2v 对其进行裁剪

    import cv2
    img = cv2.imread("image.png")
    crop_img = img[y:y+h, x:x+w]
    cv2.imshow("cropped", crop_img)
    cv2.waitKey(0)
    

    如建议: https://stackoverflow.com/a/15589825/4610938

    【讨论】:

    • 我不确定存储和裁剪图像是否真的很好。我想有一个解决方案可以保存已经裁剪的。
    • 我在这里找到了:stackoverflow.com/a/9295367/4610938 一个去掉了图形白色填充的答案,希望对您有所帮助
    猜你喜欢
    • 2019-02-25
    • 1970-01-01
    • 1970-01-01
    • 2021-02-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-14
    • 2020-11-24
    • 2015-11-04
    相关资源
    最近更新 更多