我需要遍历2560x2160 2D numpy阵列(图像)的每个像素。我的问题的简化版本如下:更快速地循环遍历Python中图像的每个像素?
import time
import numpy as np
t = time.clock()
limit = 9000
for (x,y), pixel in np.ndenumerate(image):
if(pixel > limit)
pass
tt = time.clock()
print tt-t
这是一个令人讨厌的~30秒完成在我的电脑上。 (酷睿i7,8GB RAM) 有更快的方式来执行这个循环与一个内部'如果'的声明?我只对超过某个限制的像素感兴趣,但我确实需要它们的(x,y)指数和值。
WOW!我的眼睛被打开了。取<0.1秒。 – dinkelk
x和y这里是什么? –
@AndrewHundt:'x'和'y'分别是非零点的x和y索引数组。 – nneonneo