在Python中循环遍历图像的每个像素的更快方法?

我需要遍历2560x2160 2D numpy数组(图像)的每个像素。我的问题的简化版本如下:

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秒钟才能完成。(Core i7,8GB

ram)是否可以使用内部’if’语句执行此循环的更快方法?我只对超过一定限制的像素感兴趣,但是我确实需要它们的(x,y)索引和值。

回答:

使用布尔矩阵:

x, y = (image > limit).nonzero()

vals = image[x, y]

以上是 在Python中循环遍历图像的每个像素的更快方法? 的全部内容, 来源链接: utcz.com/qa/415344.html

回到顶部