如何在Python脚本中创建循环以读取多张图片?

4

我使用Python处理图像。我习惯于裁剪、绘制和其他操作,但只能对一张图片进行操作。就像下面的脚本一样,我该如何在脚本中应用循环来处理多张图片?

import PIL

import Image

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

box=(50, 50, 200, 200)

im_crop=im.crop(box)

im_crop.show()
3个回答

9

您需要使用 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
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来处理图像。


жҲ‘们еҸҜд»ҘеңЁos.walkдёӯдҪҝз”ЁglobиҝӣиЎҢйҖ’еҪ’жҗңзҙўеҗ—пјҹиҝҳжҳҜеҝ…йЎ»дҪҝз”Ёos.walkе’Ңfilter(regex_search, list)гҖӮжӣҙж–°пјҡжҲ‘еҸҜд»ҘдҪҝз”ЁеҮ д№ҺзӣёеҗҢзҡ„fnmatchгҖӮ - Umur Kontacı

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接