迭代图像像素的算法

时间:2012-05-04 22:52:06

标签: algorithm

我确信这件事已经存在,所以我想为什么要重新发明轮子。

有没有人知道一种算法会从左上角到右下角迭代图像中的像素。

首先,它会检查:(0, 0)

然后:(1, 0), (1, 1), (0, 1)

然后(2, 0), (2, 1), (2, 2), (1, 2), (0, 2)

......依旧......

为这个问题寻找最有效的算法。

感谢。

1 个答案:

答案 0 :(得分:3)

似乎你想以这种方式迭代:

1 4 9
  ↑ ↑
2→3 8
    ↑
5→6→7

...

这只是一个for循环:

for radius in range(squareImage.width):
    for col in range(radius):
        yield (radius, col)
    for row in range(radius):
        yield (radius-row, radius)
    yield (0, radius)

效率不是一个问题。因为你必须访问每个像素,所以不可能比像素线性更好(比如这个)。