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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

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

Q&A

1回答

2443閲覧

google colabにおけるOpenCVのエラー

KokiSakai

総合スコア12

Python 3.x

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

0グッド

0クリップ

投稿2019/01/17 03:30

前提・実現したいこと

現在、google colabでKaggleのDogs vs Catsの課題に取り組んでいます。
その中で画像ファイルをndarray配列にする際の関数作成においてエラーが出てしまいました。

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

--------------------------------------------------------------------------- error Traceback (most recent call last) <ipython-input-64-e5014848a3a7> in <module>() ----> 1 train = prep_data(train_images) 2 test = prep_data(test_images) <ipython-input-63-9d9ecb140c36> in prep_data(images) 4 5 for i, image_file in enumerate(images):#リストや配列から1個ずつデータを取り出し処理を繰り返す。番号を自動的にふる。 ----> 6 image = read_image(image_file) 7 data[i] = image.T#転置行列のT、行と列の入れ替え。chanelsを一番前に持ってくるために 8 if i%250 == 0: print('Processed {} of {}'.format(i, count)) <ipython-input-62-411d2a4e080f> in read_image(file_path) 1 def read_image(file_path): 2 img = cv2.imread(file_path, cv2.IMREAD_COLOR) ----> 3 return cv2.resize(img, (ROWS, COLS), interpolation=cv2.INTER_CUBIC) error: OpenCV(3.4.3) /io/opencv/modules/imgproc/src/resize.cpp:4044: error: (-215:Assertion failed) !ssize.empty() in function 'resize'

該当のソースコード

python3

1def read_image(file_path): 2 img = cv2.imread(file_path, cv2.IMREAD_COLOR) 3 return cv2.resize(img, (ROWS, COLS), interpolation=cv2.INTER_CUBIC) 4 5def prep_data(images): 6 count = len(images) 7 data = np.ndarray((count, CHANNELS, ROWS, COLS), dtype=np.uint8) 8 9 for i, image_file in enumerate(images):#リストや配列から1個ずつデータを取り出し処理を繰り返す。番号を自動的にふる。 10 image = read_image(image_file) 11 data[i] = image.T#転置行列のT、行と列の入れ替え。chanelsを一番前に持ってくるために 12 if i%250 == 0: print('Processed {} of {}'.format(i, count)) 13 14 return data 15 16train = prep_data(train_images) 17test = prep_data(test_images)

試したこと

ここに問題に対して試したことを記載してください。

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

ここにより詳細な情報を記載してください。

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

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

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

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

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

tiitoi

2019/01/17 03:44

(ROWS, COLS) の値はどうなっていますか?
tiitoi

2019/01/17 05:09

サイズは大丈夫そうなので、 img = cv2.imread(file_path, cv2.IMREAD_COLOR) のパスが間違っていてファイルが読み込めていないとかですかね?
KokiSakai

2019/01/17 05:43

ありがとうございます。その確認はどうすればできるのでしょうか?
tiitoi

2019/01/17 05:59 編集

img が None となっていたら、読み込みに失敗しています。 import os os.path.exists(file_path) などとしてファイルが存在するか確認してみてもよいでしょう。 回答にコードを書きました
guest

回答1

0

python

1def read_image(file_path): 2 import os 3 if not os.path.exists(file_path): 4 print('File not fould. {}'.format(file_path)) 5 return 6 7 img = cv2.imread(file_path, cv2.IMREAD_COLOR) 8 if img is None: 9 print('Failed to load image.') 10 return 11 12 return cv2.resize(img, (ROWS, COLS), interpolation=cv2.INTER_CUBIC)

投稿2019/01/17 05:58

編集2019/01/17 06:00
tiitoi

総合スコア21956

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

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

KokiSakai

2019/01/17 06:39

```lang-python3 File not fould. traincat.1639.jpg --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-89-e5014848a3a7> in <module>() ----> 1 train = prep_data(train_images) 2 test = prep_data(test_images) <ipython-input-88-9d9ecb140c36> in prep_data(images) 5 for i, image_file in enumerate(images):#リストや配列から1個ずつデータを取り出し処理を繰り返す。番号を自動的にふる。 6 image = read_image(image_file) ----> 7 data[i] = image.T#転置行列のT、行と列の入れ替え。chanelsを一番前に持ってくるために 8 if i%250 == 0: print('Processed {} of {}'.format(i, count)) 9 AttributeError: 'NoneType' object has no attribute 'T' ``` ありがとうございます。 どうやらtraincat.1639がなかったみたいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問