🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

1488閲覧

コラボラトリーからドライブへ画像保存ができない

shu-ta

総合スコア5

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/01/07 07:49

前提・実現したいこと

大量の水増し画像をコラボラトリーで出力しているのですが、ドライブへの保存のコードを書いているのですが真っ白な画像しか保存されません。お力を貸してください。

該当のソースコード

import librosa import librosa.display from sklearn import preprocessing import matplotlib.pyplot as plt import seaborn as sn import IPython.display as ipd import os import numpy as np from PIL import Image drive_root = "/content/drive/My Drive/" os.chdir(drive_root) # load a wave data def load_wave_data(file_name, audio_dir="./"): file_path = os.path.join(audio_dir, file_name) x, fs = librosa.load(file_path, sr=44100) return x,fs # change wave data to mfcc def calculate_mfcc(x, n_fft=2048, hop_length=128): stft = np.abs(librosa.stft(x, n_fft=n_fft, hop_length=hop_length))**2 log_stft = librosa.power_to_db(stft) melsp = librosa.feature.melspectrogram(S=log_stft) mfcc = librosa.feature.mfcc(S=melsp) mfcc = preprocessing.scale(mfcc, axis=1) return mfcc # display wave in plots def show_wave(x): plt.plot(x) plt.show() #display mfcc in heatmap def show_mfcc(mfcc, fs): librosa.display.specshow(mfcc, sr=fs) plt.colorbar() plt.show() for i in range(0,100): x, fs = load_wave_data(drive_root + "anamal_onsei/" + "dog/" + "dog_" + str(i + 1) + ".wav") mfcc = calculate_mfcc(x) #print("CAT'S MEOW!") #print("wave size:{0}\nmfcc size:{1}".format(x.shape, mfcc.shape)) #show_wave(x) #show_mfcc(mfcc, fs) ipd.Audio(x, rate=fs) def add_white_noise(x, rate=0.005): return x + rate*np.random.randn(len(x)) #print("ADD WHITE NOISE") x_wn = add_white_noise(x) mfcc = calculate_mfcc(x_wn) print("wave size:{0}\nmfcc size:{1}".format(x_wn.shape, mfcc.shape)) #show_wave(x_wn) show_mfcc(mfcc, fs) plt.savefig(drive_root + "animal_onsei/" + "dog/" + "dog_" + str(i + 1) + ".png") ipd.Audio(x_wn, rate=fs)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

「plt.show()」をコメントアウトしてみたらどうでしょうか?

【追記】
jupyter notebookの場合plt.show()とplt.savefig()でセルが異なると駄目のようです。
stackoverflow matplotlibで作成したグラフを保存すると真っ白な画像になってしまう
Jupyter Notebook 上で Matplotlib はどう動いているのか?

投稿2020/01/07 12:59

編集2020/01/07 13:06
meg_

総合スコア10736

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shu-ta

2020/01/12 14:23

遅くなりすみません。 無事解決できました!! ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問