gpt4 book ai didi

python - 为什么Python中的数组填充速度很慢

转载 作者:行者123 更新时间:2023-11-30 23:23:31 25 4
gpt4 key购买 nike

我有一个 python 代码,它循环遍历图像并将它们复制到 RGBA 格式的数组中,但是该代码非常慢,每个 256x256 的 10 个图像需要 5 分钟以上的时间来处理,有什么想法可以改进此代码?

self.pixelsArray = array('B')

def extractPixelsFromImage(self):
pixels = self.image.pixels
for y in range(self.height):
for x in range(self.width):

i = (x + (self.height-1-y)*self.width) * 4

r = int (max (0, min (255, 255 * pixels [i ])))
g = int (max (0, min (255, 255 * pixels [i + 1])))
b = int (max (0, min (255, 255 * pixels [i + 2])))
a = int (max (0, min (255, 255 * pixels [i + 3])))

self.pixelsArray.append(r)
self.pixelsArray.append(g)
self.pixelsArray.append(b)
self.pixelsArray.append(a)

最佳答案

您可以做的一个小改进是不再为 rgba 附加四次 strong> 到数组,创建一个列表并使用扩展方法,如下所示:

self.pixels_array = array('B')

def extract_pixels_from_image(self):
pixels = self.image.pixels
for y in range(self.height):
for x in range(self.width):

i = (x + (self.height - 1 - y) * self.width) * 4

r = int(max(0, min(255, 255 * pixels[i])))
g = int(max(0, min(255, 255 * pixels[i + 1])))
b = int(max(0, min(255, 255 * pixels[i + 2])))
a = int(max(0, min(255, 255 * pixels[i + 3])))

self.pixels_array.extend([r, g, b, a])

抱歉更改您的命名风格,只是不要在变量中使用驼峰式命名风格,方法名称也不是pythonic

关于python - 为什么Python中的数组填充速度很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23928136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com