汪汪汪呸呸呸 2018-04-18 08:54 采纳率: 0%
浏览 4479
已结题

Python读取文件夹下图片,如何优化代码提高效率

读取文件夹下所有图片,把像素点分别按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

  • 写回答

2条回答 默认 最新

  • threenewbee 2018-04-18 09:51
    关注
             for w in range(width):   
                for h in range(height):
                            这两个颠倒下看看,因为图片是按照行存储的,所以内侧循环如果是width会更好利用缓存。
    
    评论

报告相同问题?

悬赏问题

  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题