2012-05-04 18 views
0

これは既に存在するものだと私は確信しています。イメージピクセルを反復するアルゴリズム

画像内のピクセルを左上から右下に向かって反復するアルゴリズムを知っている人はいませんか?このための最も効率的なアルゴリズムを探して次に(1, 0), (1, 1), (0, 1)

(2, 0), (2, 1), (2, 2), (1, 2), (0, 2)

を...というように....

:次に(0, 0)

を:

だから、最初のそれがチェックされます問題。

ありがとうございました。

+0

ここでは効率は重要ではありません。これはforループです。より良いことは不可能です。 – ninjagecko

答えて

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) 

効率は、ここでは問題ではありません。これはピクセル数を線形で表示する(これのように)よりも優れていることは不可能です。なぜなら、すべてのピクセルを訪問する必要があるからです。

+0

これの複雑さはO(N^2)であり、私はあなたがこれよりも優れた方法を見ていません。 – DarthVader

+0

@DarthVader:O(N^2)の収穫作業が必要なので、それは不可能です。 – sdcvvc

+0

@sdcvvcはい。それはまた、私が言ったもの:) – DarthVader