Я хочу обрезать и изменить размер нескольких изображений во многих подкаталогах. Код работает, если изображения находятся в одном каталоге, но не может прочитать из других каталогов.
Я пытался использовать модуль os.walk (). Он успешно перебирает файлы из всех подкаталогов, но функция Image.open () подушки не может получить доступ к изображениям и, таким образом, отображает ошибку: «изображение ..» не найдено.
import os
from PIL import Image
for dirpath, dirnames, files in os.walk('.'):
for filename in files:
t = filename.split(".")
ext = t[-1]
if ext in ["jpg"]:
print(filename)
coords = (500, 250, 810,720)
image_obj = Image.open(filename)
cropped_image = image_obj.crop(coords)
resized_image =cropped_image.resize([227,227])
# name = "./data2" + str(i) +".jpg"
resized_image.save("new" + filename)
Я ожидаю, что код рекурсивно обрежет и изменит размеры изображений во всех подкаталогах. Произошла следующая ошибка.
frame0.jpg
Traceback (most recent call last):
File "........./data2/cropitall.py", line 18, in <module>
image_obj = Image.open(filename) #path of image to be cropped
File "C:\Python36\lib\site-packages\PIL\Image.py", line 2652, in open
fp = builtins.open(filename, "rb")
FileNotFoundError: [Errno 2] No such file or directory: 'frame0.jpg'
Process finished with exit code 1