我确信这件事已经存在,所以我想为什么要重新发明轮子。
有没有人知道一种算法会从左上角到右下角迭代图像中的像素。
首先,它会检查:(0, 0)
然后:(1, 0), (1, 1), (0, 1)
然后(2, 0), (2, 1), (2, 2), (1, 2), (0, 2)
......依旧......
为这个问题寻找最有效的算法。
感谢。
答案 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)
效率不是一个问题。因为你必须访问每个像素,所以不可能比像素线性更好(比如这个)。