Почему когда вывожу картинку в виде массива чисел, везде 255? Хотя картинка не белая

Есть спектрограмма, которую надо сохранить в виде картинки

train_files = sorted(glob.glob('../input/m-lab-4/train/*/*.wav'))
test_files = sorted(glob.glob('../input/m-lab-4/test/*.wav'))
file_path = train_files[13000]
prefix = os.path.basename(os.path.dirname(file_path)) + '_' + os.path.basename(file_path)

waveform, sr = librosa.load(file_path)
waveform = normalize(waveform)

n_fft = 4096
step = n_fft // 64

mel_spectrogram = librosa.feature.melspectrogram(y=waveform, sr=sr, n_fft=n_fft, hop_length=step)
mel_spectrogram = librosa.power_to_db(mel_spectrogram, ref=np.max)

librosa.display.specshow(mel_spectrogram, y_axis='mel', x_axis='time')
plt.axis('off')
plt.savefig('{}_out_melspec.png'.format(prefix))
plt.show()
plt.close()

введите сюда описание изображения

Вот я вывожу это сохраненное изображение, все норм.

image = Image.open('./two_two_eb554734_0.wav_out_melspec.jpg')
image

введите сюда описание изображения

Однако когда я перевожу в тензор, везде получаются единицы

image = Image.open('./two_two_eb554734_0.wav_out_melspec.jpg')
image = transforms.ToTensor()(image)
image

введите сюда описание изображения

Когда открываю с помощью cv2, везде 255

image = cv2.imread('./two_two_eb554734_0.wav_out_melspec.jpg')
image

введите сюда описание изображения

Что не так?


Ответы (0 шт):