读取文件夹下所有图片,把像素点分别按r\g\b通道读出来处理,不知道为什么读图很慢,一百多张图等好一会,有没有什么优化代码的建议?
import sys
import os
import time
import random
import numpy as np
from PIL import Image
SIZE = 471296
WIDTH = 896
HEIGHT = 506
dir = "image"+"/"
# 第一次遍历图片目录获取图片总数
input_count = 0
for rt, dirs, files in os.walk(dir):
for filename in files:
input_count += 1
#print(input_count)
def cal_average(x):
return x/input_count
# 定义对应维数和各维长度的数组
r = np.array([[0]*SIZE for i in range(input_count)])
g = np.array([[0]*SIZE for i in range(input_count)])
b = np.array([[0]*SIZE for i in range(input_count)])
# 第二次遍历图片目录是为了生成图片数据和标签
index = 0
for rt, dirs, files in os.walk(dir):
for filename in files:
filename = dir + filename
img = Image.open(filename)
pix = img.load()
width = img.size[0]
height = img.size[1]
for w in range(width):
for h in range(height):
r[index][w+h*width], g[index][w+h*width], b[index][w+h*width] = pix[w, h]
index+=1