【发布时间】:2017-05-13 09:12:45
【问题描述】:
我在将显示的图像保存为 numpy ndarays 时遇到了一些问题。
例子:
这段代码:
librosa.display.specshow(static.T,sr=16000,x_axis='frames',y_axis='mel',hop_length=160,cmap=cm.jet)
plt.title("log mel power spectrum of " + name)
plt.colorbar(format='%+02.0f dB')
plt.tight_layout()
plt.savefig(plot+"/"+name+"_plot_static_conv.png")
plt.show()
将显示如下图像:
但是当我将图像存储到一个 numpy ndarray 中,然后尝试绘制它时,我得到了这样的东西..
convert = plt.get_cmap(cm.jet)
numpy_output_static = convert(static.T)
plt.imshow(numpy_output_static)
plt.show()
raw_input("sadas")
给我看一张图片:
这是怎么回事?.. 为什么我不能存储相同的图像,并以相同的方式查看它?
最小的工作示例:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
from PIL import Image
import librosa
import librosa.display
from matplotlib import cm
fig = plt.figure(figsize=(12,4))
min = -1.828067
max = 22.70058
data = np.random.uniform(low=min, high=max, size=(474,40))
librosa.display.specshow(data.T,sr=16000,x_axis='frames',y_axis='mel',hop_length=160,cmap=cm.jet)
plt.show()
raw_input("sadas")
convert = plt.get_cmap(cm.jet)
numpy_output_static = convert(data.T)
plt.imshow(numpy_output_static, aspect = 'auto')
plt.show()
raw_input("asds")
第一个情节是:
第二个情节是:
规范化数据集并不能修复第二张图像。
【问题讨论】:
-
请尝试提出minimal working example。它很可能与颜色轴的限制有关......您可以添加一个颜色条来找出答案。见this answer
-
dB 也是对数轴。我们只能猜测
static是哪个单位?????? -
您能否修改您的帖子以使其可以被复制。 IE。生成静态,并相应地修改图像?另外,你研究过色阶吗?
-
我目前正在使用真实数据制作一个示例..我尝试了随机值,它似乎可以正常工作..但在
static数据集上它似乎搞砸了.. -
@TomdeGeus 我已经添加了示例。我尝试增加了限制。结果相同
标签: python numpy matplotlib librosa