将图转换为nparray

时间:2019-06-25 09:14:23

标签: python numpy matplotlib speech-recognition spectrogram

我有一个(74, 743)形状的numpy数组,代表了几秒钟人类语音的声谱图。我可以使用plt.subplots.matshow轻松地将其转换为matplotlib图,但是我想知道是否有可能将图转换为原始的numpy数组?至少,matplotlib如何从任意形状的数组生成图像?

我正在尝试创建一个生成对抗网络,该网络将生成频谱图的图像(这是由于该网络在图像生成方面的优越性能)。然后,我想将这些频谱图图像转换为定量频谱图,即将其绘制成一个numpy数组。

1 个答案:

答案 0 :(得分:0)

似乎您想将颜色图应用于2D阵列。使用matplotlib工具可能看起来像

import numpy as np
from matplotlib.colors import Normalize
import matplotlib.cm as cm

data = np.random.rand(74, 743)

cmap = cm.viridis
norm = Normalize(data.min(), data.max())

output = cmap(norm(data))

print(output.shape)

输出是形状为(74, 743, 4)的数组,其值介于0和1之间,表示RGBA颜色。