前提・実現したいこと
Yolo v3を用いて、自前学習させた検出結果の矩形を保存するようにしたいです。
以下のページを参考にしております。
参考
発生している問題・エラーメッセージ
File "C:\Users\818\keras-yolo3-master\yolocut.py", line 23, in <module> for object_info in objects_info_list: TypeError: 'MpoImageFile' object is not iterable
MpoImageFileというのがイマイチよくわかりません。
該当のソースコード
python
1from yolo import YOLO 2from PIL import Image 3from objects import get_objects_information 4 5 6 7if __name__ == '__main__': 8 yolo = YOLO() 9 image_path = r"C:\Users\818\keras-yolo3-master\test15.jpg" 10 objects_info_list = get_objects_information(yolo, image_path) 11 yolo.close_session() 12 13 img = Image.open(image_path) 14 count = 0 15 for object_info in objects_info_list: 16 class_name = ['vegetable'] 17 x = object_info['x'] 18 y = object_info['y'] 19 width = object_info['width'] 20 height = object_info['height'] 21 cropped_img = img.crop((x, y, x + width, y + height)) 22 cropped_img.save(r"C:\Users\818\temp\{}{}.jpg".format(class_name, count)) 23 count = count + 1
試したこと
for文の繰り返しに使えないオブジェクトを繰り返し処理で使っているという
エラーであることはわかるのですが、どうして使えないのでしょうか?
ちなみに、objects.pyは下の通りです。
###objects.py
python
1import os 2from PIL import Image 3 4 5def get_objects_information(yolo, image_path): 6 try: 7 if not os.path.exists(image_path): 8 raise FileNotFoundError 9 image = Image.open(image_path) 10 return yolo.detect_image(image) 11 except FileNotFoundError: 12 print("The Image file isn't found. Check the image file path.") 13 except IOError: 14 print('Image open Error. Try again.')
あなたの回答
tips
プレビュー