如何加载文件中的每个图像并将它们转换为二维数组,然后将其导出到新文件夹?
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]])
我只能一张一张地加载和转换图像,但是一次处理一张图像非常耗时。
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]])