0

Jython を使用して ImageJ/Fiji 用の小さなプラグインをプログラミングしようとしています。したがって、ピクセル列を反復処理する必要があります。残念ながらコマンド

pixels = ip.getPixels()

ピクセル行でソートされた配列になります。だから私は、列ごとのピクセル値の合計を取得するために何かを書きました(これは小さなクエリを満たします)。

x = imp.getWidth()
y = imp.getHeight() - 1
pixels = ip.getPixels()
j = 0

for j in range(x):
    print(j)
    i = j
    tempx = x - j
    su = 0
    for i in range((x * y) - 1):

      if pixels[i] > 0:
        su = su + 1
      else:
        su = su + 0  
      i = i + tempx -1

    print(su)

しかし、画像のすべてのピクセルの合計を取得しているようです(クエリを満たしています)。私の意見では、2 番目の for ループに問題がありますが、初心者すぎてその理由を理解できません。前もって感謝します。

4

1 に答える 1

0

問題はおそらく 2 番目の for ループにあることに同意します。

for i in range((x * y) - 1):

これは、0 から (ほぼ) 画像内のピクセル数 (幅 * 高さ -1) まで実行されます。あなたが望むループは

for i in range(y):
    if pixels[i+j*(y+1)] > 0:

それは良い習慣ですが、あなたが望むことをするためのもっとPythonicな方法があると確信しています

于 2013-10-04T14:53:38.143 に答える