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

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

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

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

NumPy

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

OpenCV

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

Python 3.x

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

Q&A

解決済

1回答

265閲覧

フォルダ内の画像を四次元で読みこみラベル付けと変換処理を行いたい

semisemi

総合スコア18

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

NumPy

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

OpenCV

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

Python 3.x

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

0グッド

0クリップ

投稿2022/09/27 08:07

前提

pythonでフォルダから画像を画像枚数, 縦サイズ, 横サイズ, チャンネル数で読み込み、画像に数字のラベル付けを行いたいのですがうまくいきません。
また、読み込んだ画像にImageDataGeneratorを用いて変換も行いたいです。

実現したいこと

・フォルダ内の画像を四次元で読みこみラベル付けと変換処理を行う。

発生している問題・エラーメッセージ

画像をうまく読み込めていないようです。 global D:\bld\libopencv_1657598065368\work\modules\imgcodecs\src\loadsave.cpp (239) cv::findDecoder imread_('siro/*.png'): can't open/read file: check file path/integrity

該当のソースコード

python

1siro_train = [] 2siro_label = [] 3 4for dir in os.listdir("train"): 5 dir1 ="train/" + dir 6 if dir == "siro": 7 label = 255 8 9 for file in os.listdir(dir1): 10 siro_label.append(label) 11 img_path = dir + "/" +"*.png" 12 image = cv2.imread(img_path) 13 siro_train.append(image) 14siro_train = np.asarray(siro_train)

試したこと

このコードを実行するとsiro_trainとsiro_labelに画像の枚数が入るのですが、siro_trainに縦横サイズとチャンネルがうまく入りません。

解決方法を教えていただけると幸いです。

補足情報(FW/ツールのバージョンなど)

windows10(64bit)
anacondaを使用
python 3.8.13
TensorFlow 2.3
Spyder 5.3.1を利用

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

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

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

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

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

can110

2022/09/27 08:31

コード中の「img_path = dir + "/" +"*.png"」部分の意図を説明ください。 (拡張子が「.png」であるすべてのファイルパスのリストを得ようとしている?)
semisemi

2022/09/27 08:49

siroディレクトリ内の.pngである画像をすべて取得しようと考えています。 サイトなどを参考に作ったので間違いがあれば申し訳ございません。
guest

回答1

0

ベストアンサー

エラーにはこうあります。
imread_('siro/*.png'): can't open/read file:

エラーにあるとおり、以下の書き方では、「siro/*.png」というファイル名を指定することになります。

python

1 img_path = dir + "/" +"*.png" 2 image = cv2.imread(img_path)

ターミナルなどで、「siro/*.png」のように指定できるのは、bashなどのshellがその部分を展開しているからで、pythonなどではそのようなことはできません。

pngで終わるファイルを取得したいのであれば、

  • globモジュール
  • pathlibモジュールのglobメソッド

を使うなどする必要があります。


ちなみに、

python

1siro_label.append(label)

は、ディレクトリがsiroでなければ、label変数が設定されないので、エラーになります。

投稿2022/09/27 09:10

TakaiY

総合スコア12774

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

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

semisemi

2022/09/28 05:04

回答ありがとうございます。 globモジュールで読み取り、画像枚数×縦サイズ×横サイズ×チャンネル数の形にはできました。ImageDataGeneratorを用いて変換処理をかけようとしたところエラーとして、AttributeError:'numpy.ndarray' object has no attribute 'ImageDataGenerator'がでました。 調べても対策が浮かばず、もしも解決策がおありでしたら助言をいただきたいです。
TakaiY

2022/09/28 05:19

エラーにあるとおり、ImageDataGeneratorの使いかたが間違えているのでしょう。 コードも無いのではそれ以上はわかりません。 この質問とは別に質問を立てて聞いてみてはどうでしょうか。
semisemi

2022/09/28 05:27

返信ありがとうございます。 別に質問をたてて質問します!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問