如何创建一个循环来读取python脚本中的几个图像?

时间:2011-08-09 14:04:06

标签: python image-processing python-imaging-library

我使用python处理图像处理。我习惯于切割,绘制和其他东西,但对于一个图像。就像在下面的脚本中一样,我如何在脚本中使用循环来处理多个图像?

import PIL

import Image

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

box=(50, 50, 200, 200)

im_crop=im.crop(box)

im_crop.show()

3 个答案:

答案 0 :(得分:7)

您需要将其包装在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()

答案 1 :(得分:2)

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来处理图像。

答案 2 :(得分:0)

也许是这样的事情?

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()