0

我只能逐個加載和轉換圖像,但一次只能完成一幅圖像很耗時。如何加載文件中的每個圖像並將它們轉換爲二維數組,然後將其導出到新文件夾?

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

回答

0

你可以簡單地通過在代碼中的所有圖像,循環利用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]]) 
0

如果我正確理解您的問題,您希望打開path中的每個.jpg文件。

您可以使用水珠來實現這一點,因爲:

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