Есть ли способ импортировать все изображения внутри каталога (известно расположение каталога).
Если это помогает, я уже нашел способ узнать длину каталога.
Что я не уверен в том, как импортировать изображения (используя PIL/Pillow) в список или словарь.Импорт изображений из каталога (Python)
ответ
Я хотел бы начать с помощью Glob:
from PIL import Image
import glob
image_list = []
for filename in glob.glob('yourpath/*.gif'): #assuming gif
im=Image.open(filename)
image_list.append(im)
затем делать то, что вам нужно сделать с вашим списком изображений (IMAGE_LIST).
'image_list = map (Image.open, glob ('your/path/*. Gif'))' – jfs
Более приятное решение, чем у меня (с использованием glob правильно), но это сложнее расширить для других типов изображений - если только вы требуется более сложное регулярное выражение. –
обе комментарии хорошо. JFS: приятный и компактный ... Я бы использовал нечто похожее, но иногда людям легче учиться питону понимать что-то более читаемое, поэтому я пытаюсь и доставляю. Тони, да, независимо от того, как вы его нарезаете, будет немного уродства с размещением для разных расширений. – user1269942
from PIL import Image
import os, os.path
imgs = []
path = "/home/tony/pictures"
valid_images = [".jpg",".gif",".png",".tga"]
for f in os.listdir(path):
ext = os.path.splitext(f)[1]
if ext.lower() not in valid_images:
continue
imgs.append(Image.open(os.path.join(path,f))
Это должно работать - не проверено.
@JFSebastian - спасибо за исправления - я был бы рад за то, что вы внесли эти изменения :-) –
еще один способ проверить его: 'if f.lower(). Endswith (valid_images): append' (' valid_images 'должен быть кортежем в этом случае). – jfs
@ J.F.Sebastian: правда с точки зрения использования 'endswith', но я думаю, что * лучше * использовать splitext, а затем сравнивать при тестировании расширения файла - он немного более явный. –
Возможно, вам это будет полезно: http://stackoverflow.com/questions/3207219/how-to-list-all-files-of-a-directory-in-python Это метод для перечисления всего файла в каталог, оттуда вы можете просто вызвать функцию чтения изображений для каждого. – Mike
Майк дал вам решение найти все файлы - так как у вас есть все имена файлов, вы можете их открыть - иногда вам нужно думать! –
эй Чарльз, ты здесь довольно новый, и я тоже ... одна вещь, которую я узнал, заключается в том, что чем проще людям помочь вам, тем больше отзывов вы получите. Все в порядке (IMHO), чтобы не знать, как программировать и по-прежнему задавать вопрос, но продемонстрировать усилия, придумав даже сломанную версию кода, люди будут счастливее. Мы здесь, как примеры, которые мы можем исправить, а не общие понятия! Я думаю, что это немного значит, чтобы понизить рейтинг нового пользователя, поэтому не обескураживайте! – user1269942