以下のコードを実行したとき、エラーが出てしまって実行できません。
globで指定した絶対パスは間違っておらず、またjpgファイルも確かにあります。
###コード
python
1# -*- coding: utf-8 -*- 2import cv2 3import glob 4 5def main(): 6 7 files = glob.glob(r"C:\Users\hatae\Downloads\face recognition*.jpg") 8 9 for f in files: 10 #カメラ背景 11 photo = cv2.imread(f,1) 12 print(photo) 13 cv2.imshow('Siri', photo) 14 cv2.waitKey() 15 16main() 17
###エラーメッセージ
python
1None 2Traceback (most recent call last): 3 4 File "C:\Users\hatae.spyder-py3\タイトル無し1.py", line 19, in <module> 5 main() 6 7 File "C:\Users\hatae.spyder-py3\タイトル無し1.py", line 16, in main 8 cv2.imshow('Siri', photo) 9 10error: OpenCV(4.4.0) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-q0nmoxxv\opencv\modules\highgui\src\window.cpp:376: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow'
ファイル読み込みに失敗してます。エラーが起こる前に print(f) を入れて、その出力結果を教えてください
表示windowの作成部はどこですか。
テキストファイルで作成したファイルの拡張子をjpgにするなど、
画像として読み込めないファイルを含めれば同じエラーになります。
print(photo)
の結果がNoneになってるなど、おかしい画像ファイルはないですか。
print(f)の結果は
C:\Users\hatae\Downloads\face recognition\ロード.jpg
となりました。一応、これが表示させようとした画像のパスです。
表示ウィンドウの作成というのは、imshowではダメなのでしょうか?
すいません、よく分からなくて。
一応、この表示させようとしている「ロード.jpg」は「.png」から変更したものではあるのですが、データはちゃんと開けるので、大丈夫だと思います。
他のファイルには、そのような変更はしておりません。
失礼、勘違いしてました。
pngファイルの拡張子をjpgに直して読込んでみた分にはこちらでも正しく表示できました。
ただ画像の名前をロード.jpgに修正して試してみたら同じエラーとなりました。
日本語名の画像ファイルだとダメなのかも知れません。
英語のファイル名に直して試してみてください。
おっしゃる通りでした。
日本語のファイル名が原因でした。
検証までしていただき、ありがとうございました。
回答1件
あなたの回答
tips
プレビュー