2013-10-03 135 views
0

我想用Jython爲ImageJ /斐濟編程一個小插件。因此我必須遍歷一個像素列。不幸的是,命令通過像素列迭代

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) 

但它似乎只是得到圖片的所有像素的總和(填滿查詢)。在我看來,第二個for循環存在問題,但我太瞭解初衷了。先謝謝你。

+0

這個問題可以在這裏得到解答什麼: HTTP:/ /stackoverflow.com/questions/13567345/how-to-calculate-the-sum-of-all-columns-of-a-2d-numpy-array-efficiently – Jimmy2Shoes

回答

0

我同意問題可能是第二個循環。

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

這將從0運行到(幾乎)圖像像素數(寬*高-1)。 我想你想的循環是

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

這是很好的做法,但我敢肯定有一個更Python的方式做自己想做