我相信這件事已經存在,所以我想爲什麼重新發明輪子。迭代通過圖像像素的算法
有誰知道一個算法,將從左上角到右下角的圖像中的像素迭代。
所以首先它會檢查:(0, 0)
然後:(1, 0), (1, 1), (0, 1)
然後(2, 0), (2, 1), (2, 2), (1, 2), (0, 2)
...等等....
尋找最高效的算法,此問題。
謝謝。
我相信這件事已經存在,所以我想爲什麼重新發明輪子。迭代通過圖像像素的算法
有誰知道一個算法,將從左上角到右下角的圖像中的像素迭代。
所以首先它會檢查:(0, 0)
然後:(1, 0), (1, 1), (0, 1)
然後(2, 0), (2, 1), (2, 2), (1, 2), (0, 2)
...等等....
尋找最高效的算法,此問題。
謝謝。
看來你想以這種方式來遍歷:
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)
效率是不是在這裏關心的問題。不可能比線性像素數量更好(像這樣),因爲你必須訪問每個像素。
和這個的複雜性是O(N^2),我沒有看到你怎麼能做得比這更好。 – DarthVader
@DarthVader:因爲需要O(N^2)個yield操作,所以不可能做得更好。 – sdcvvc
@sdcvvc是的。那也是我說的:) – DarthVader
效率不在這裏。這只是一個for循環。不可能做得更好。 – ninjagecko