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

4 投票
3 回答
25475 浏览
提问于 2025-04-16 23:12

我用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

可能像这样吧?

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()
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 来处理这个图片。

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

撰写回答