我需要在不到1秒的时间内对图像执行功能。我在1000x1000图片上遇到了一个问题,只是将其作为矩阵加载到程序中,需要1秒钟。
我用来加载它的函数如下:
import png
def load(fname):
with open(fname, mode='rb') as f:
reader = png.Reader(file=f)
w, h, png_img, _ = reader.asRGB8()
img = []
for line in png_img:
l = []
for i in range(0, len(line), 3):
l+=[(line[i], line[i+1], line[i+2])]
img+=[l]
return img
我该如何修改它,以使其在打开图像时花费的时间超过几毫秒?
重要说明:我无法导入其他功能(这是一次大学练习,因此有规则-.-)。所以我得自己一个人
答案 0 :(得分:1)
您可以使用cellForRowAt
为您完成此操作,它是高度优化和快速的
PIL
答案 1 :(得分:0)
我不确定是否可以在短短几毫秒内远程运行可打开文件等内容的python脚本。在我的计算机上,最简单的程序需要花费10毫秒的时间
如果不了解问题的具体细节和约束的原因,就很难回答。您应该根据程序的实际工作方式来考虑要做什么,然后制定实现目标的策略。
这里的总上下文是,您要计算机执行以下操作:
您需要弄清楚哪些步骤真正需要快速实现。之后,也许有人可以提出建议。
答案 2 :(得分:0)
附加到list
本质上很慢-请阅读Shlemiel the painter’s algorithm。您可以将其替换为生成器表达式和切片。
for line in png_img:
img += list(zip(line[0::3], line[1::3], line[2::3])