如何加载文件中的每个图像并将它们转换为二维数组,然后将其导出到新文件夹?

How do I load every image in a file and convert them to 2D array then export it to a new folder?

我只能一张一张地加载和转换图像,但是一次处理一张图像非常耗时。

from __future__ import with_statement
from PIL import Image

im = Image.open("\path\.jpg")
pix = im.load()

width, height, = im.size
new_width  = 100
new_height = 100
im = im.resize((new_width, new_height), Image.ANTIALIAS)
im.save('.png')

with open('output_file2.csv', 'w+') as f:
    f.write('R,G,B\n')
    for x in range(width):
          for y in range(height):
                r = pix[x,y][0]
                g = pix[x,y][1]
                b = pix[x,y][2]
                f.write('{0},{1},{2}\n'.format(r,g,b))

如果我正确理解你的问题,你希望打开 path 中的每个 .jpg 文件。

您可以使用 glob 来实现这一点,如:

import glob
for filename in glob.glob(os.path.join(path, '*.jpg')):
    # code goes here

您可以使用 glob:

简单地遍历代码中的所有图像
from __future__ import with_statement
import csv
import glob
from PIL import Image


with open('output_file2.csv', 'w') as f:
   w = csv.writer(f)
   w.writerow(['R','G','B'])
   for img in glob.iglob('/path/to/file/*.jpg'):
      im = Image.open(img)
      pix = im.load()
      width, height = im.size
      im = im.resize((100, 100), Image.ANTIALIAS)
      im.save('.png')
      for x,y in zip(range(width),range(height)):
          w.writerow([pix[x,y][0], pix[x,y][1], pix[x,y][2]])