質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.47%
Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python 3.x

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

Q&A

解決済

2回答

458閲覧

Python 画像の保存ができない

syosinsya8

総合スコア5

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python 3.x

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

0グッド

0クリップ

投稿2024/04/27 04:56

編集2024/04/29 06:49

実現したいこと

マスク画像を自動で作成するプログラムを作成したのですが名前を変更して写真に示すような生成した複数のマスク画像を保存したいです
matplotlibで保存はできたのですが白い枠?みたいなものができてしまいます、ほかにいい方法はありますか

発生している問題・分からないこと

コードの以下の部分を別の方法でやりたい
plt.imshow(mask_blur,cmap='gray')
plt.axis('off')
#mask_gray =mask_blur .convert('L')
#plt.show()
plt.savefig('{}/mask_{}'.format(mask_dir,file_name[i]))#保存

実行結果例:img_1.3jpg→mask_img_1.3jpgに名前を変更して保存

該当のソースコード

Python

1import matplotlib.pyplot as plt 2import numpy as np 3import pathlib 4import glob 5import os 6import cv2 7 8file_name=[] 9input_dir = "/img_folder"#使用する画像が保存されているフォルダ名 10mask_dir="/mask_folder"#マスク画像を保存するフォルダ 11img_list = list(pathlib.Path(input_dir).glob('**/*.jpg'))#フォルダ内の画像を取得 12 13 14for f in glob.glob('img_folder/*.jpg'): 15 file_name.append(os.path.split(f)[1])#ファイル名のみ取得 16 17for i in range(len(img_list)): 18 img_file_name = str(img_list[i]) 19 img = cv2.imread(img_file_name) 20 h, w = img.shape[:2] 21 22 mask = np.zeros((h, w), dtype=np.uint8)#マスク画像生成 23 cv2.circle(mask,center=(x[i],y[i]), radius=100, color=255, thickness=-1) 24 mask_blur = cv2.GaussianBlur(mask, (591, 301), 0) 25 26 plt.imshow(mask_blur,cmap='gray') 27 plt.axis('off') 28 #mask_gray =mask_blur .convert('L') 29 #plt.show() 30 plt.savefig('{}/mask_{}'.format(mask_dir,file_name[i]))#保存 31 32

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

mask_gray=mask_mask_blur.convert('L')と試してみたがエラーが起こった
AttributeError:'numpy.ndarray' object has no attribute 'numpy'

補足

マスク画像
イメージ説明

Jupyterで制作
マスク画像の円の中心座標x,yはint型の数字が格納されています。

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

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

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

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

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

TakaiY

2024/04/27 05:24

問題が何なのか今一つわからないのですが、「plt.savefig()」するときに、元の画像が「img_1.3.jpg」なら、保存するファイルの名前を「mask_1.3.jpg」にしたいがその方法がわからないということであってますか?
hiroki-o

2024/05/02 18:16 編集

回答提示後に質問を10回も訂正されて、前提条件が変わってしまったため、削除します。
TakaiY

2024/04/27 07:23 編集

マスクの画像ですのでそういうものだと思うのですが、どのようなものが保存されると想定しているのでしょうか。 (質問者 pytさんとhiroki-oさんは同じ人ですか?)
hiroki-o

2024/05/02 18:17 編集

回答提示後に質問を10回も訂正されて、前提条件が変わってしまったため、削除します。
guest

回答2

0

自己解決

おそらくimport matplotlib.pyplot の軸?が原因だと思われたため
Jupyterでcv2を使用したらできました。
ご迷惑をおかけしました。

投稿2024/04/27 11:07

編集2024/04/29 07:11
syosinsya8

総合スコア5

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

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

0

回答提示後に質問を10回も訂正されて、前提条件が変わってしまったため、削除します。

投稿2024/04/27 06:01

編集2024/04/29 10:04
hiroki-o

総合スコア496

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問