Как создать цикл для чтения нескольких изображений в скрипте Python? - PullRequest
2 голосов
/ 09 августа 2011

Я использую python для работы с изображениями.Я привык вырезать, рисовать и другие вещи, но для одного изображения.Как в приведенном ниже сценарии, как я могу применить цикл в сценарии для нескольких изображений?

import PIL

import Image

im=Image.open('test.tif')

box=(50, 50, 200, 200)

im_crop=im.crop(box)

im_crop.show()

Ответы [ 3 ]

7 голосов
/ 09 августа 2011

Вам нужно обернуть его в цикл for и дать этому циклу список файлов.

Один очень простой способ получить список всех файлов TIF в текущем каталоге - использовать glob, вот так:

import PIL
import Image
import glob

for filename in glob.glob("*.tif"):
    im=Image.open(filename)
    box=(50, 50, 200, 200)
    im_crop=im.crop(box)
    im_crop.show()
2 голосов
/ 09 августа 2011
import PIL
import Image

filelist = ['test.tif','test2.tif']
for imagefile in filelist:
    im=Image.open(imagefile)
    box=(50, 50, 200, 200)
    im_crop=im.crop(box)
    im_crop.show()

Просто добавьте имена файлов в список filelist.Цикл for выполняет итерацию по каждому элементу списка и присваивает текущее значение imagefile.Вы можете использовать imagefile в теле цикла для обработки изображения.

0 голосов
/ 09 августа 2011

Что-то вроде этого, возможно?

import PIL

import Image

images = ["test.tif", "test2.tif", "test3.tif"]

for imgName in images:
    im=Image.open(imgName)

    box=(50, 50, 200, 200)

    im_crop=im.crop(box)

    im_crop.show()
...