前提・実現したいこと
JupyterLabを使い、pythonのopencvで
読み込んだ画像のサイズをresizeで変更しようとした際に
以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
error: OpenCV(4.4.0) /private/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/pip-req-build-nxr3bp45/opencv/modules/imgproc/src/resize.cpp:3929: error: (-215:Assertion failed) !ssize.empty() in function 'resize'
該当のソースコード
python
1 2import os 3import cv2 4import numpy as np 5 6dirs = ['ants','bees'] 7pixels = [] 8labels = [] 9 10for i ,d in enumerate(dirs): 11 files = os.listdir('/Users/***/Chap5/data/' + d) 12 13 for f in files: 14 img = cv2.imread('/Users/***/Chap5/data/' + d + '/' + f,0) 15 img = cv2.resize(img,(128,128)) 16 img = np.array(img).flatten().tolist() 17 18 pixels.append(img) 19 labels.append(i)
試したこと
画像ファイルへのパスは合っていることを確認しました。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
画像が読み込めてないです。
imread() に渡しているパスを print('/Users/***/Chap5/data/' + d + '/' + f) で出力してパスが想定外のものになっていないか確認中してください
質問ありがとうございます。
print()でパスを確認しましたが、問題ないと思います。
resize()を抜いた時は、画像を読み込み処理が上手くいくことも確認できました。
resize() の1つ前の行に assert img is not None を入れて実行してみてください
imread() は読み込みに失敗したときに None を返すのでそれをチェックしてください
それでアサートが発動するようであれば、やはり画像の読み込みに失敗しています。
assert文でエラーが確認できました。
指摘していただいた通り、imread()の読み込みが失敗しているみたいです。
パスをもう一度確認してみます。
あなたの回答
tips
プレビュー